CQWP: Показать n элементов в группе - PullRequest
0 голосов
/ 12 декабря 2010

Я видел этот вопрос в разных местах, но никогда не видел работоспособного решения, которое не включает установку новой веб-части (что я не могу сделать).

У меня есть библиотека документов, которая содержит документы с определенным типом документа, который включает значение для «регион».

Мне удалось изменить параметр «CustomViewFields» в файле .webpart и документах ContentQueryMain.xsl, Itemstyle.xsl, HeaderStyle.xsl и использовать функцию группировки CQWP для получения следующего вывода:

<div class="myDocuments">    
 <div class="group">
  <h2>My region</h2>
  <ul>
   <li>Document 1</li>
   <li>Document 2</li>
   <li>Document 3</li>
   <li>Document 4</li>
  </ul>
 </div>
 <div class="group">
  <h2>My other region</h2>
   <ul>
    <li>Document 1</li>
    <li>Document 2</li>
    <li>Document 3</li>
    <li>Document 4</li>
   </ul>
  </div>
</div>

Это все хорошо, но я хочу отображать не более трех документов в каждом регионе, упорядоченных по дате.

Мне не удалось обработать какой-либо код запроса CAML, который бы достиг этого, поэтому я искал использование оператора if для удаления любых значений после того, как три были созданы для текущего региона - но не зная, что XML, который экспортирует CQWP, оказывается трудным.

На данный момент все выглядит так:

<xsl:if test="(count(preceding-sibling::Region = @Region)) &lt 3">
  <li><xsl:value-of select="{$Region}" /></li>
<xsl:if />

Любая помощь будет принята с благодарностью, прежде чем я образно выбрасываю SharePoint в окно!

Мэтт

1 Ответ

1 голос
/ 09 марта 2011

Смотрите образец здесь: http://www.novolocus.com/2009/03/10/cqwp-show-the-first-item-in-each-group/

Это решило мою проблему в определении, находится ли следующий элемент в другой группе / категории.

НТН

...