Вопрос

Я работаю с SharePoint 2007. Я пытаюсь изменить DVWP с XSLT.

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

Единственное жизнеспособное решение для меня было изменение XSLT. Все пошло хорошо и хорошо, пока не сталкиваюсь с проблемой, и эта проблема добрая странная.

Когда я использую сорт, он не показывает первое значение из таблицы! Когда я удаляю сорт, у меня есть 4 (уникальные) значения, которые я должен иметь, но они не являются порядком, как только я получу свой сортировку внутри, я получаю 3 уникальных значения, которые пропускают первую. И я не понимаю, как это даже возможно.

Я предоставлю вам кусочки XSLT, которые я использую, как это мой активой, чтобы помочь мне понять, что я делаю не так.

Для различных уникальных значений, которые я использую это:

<xsl:key name="ByCategory" match="/dsQueryResponse/Rows/Row" use="@Category" />
.

В этой подгруппе (суб-шаблон) я получаю это странное поведение:

<xsl:call-template name="dvt_2.body">
<xsl:with-param name="Rows" select="$Rows" />
</xsl:call-template>


 <xsl:template name="dvt_2.body">
 <xsl:param name="Rows" />
     <td>
   <xsl:for-each select="$Rows[generate-id()=generate-id(key('ByCategory',@Category)[1])]"> 
           <xsl:sort select="@Category"/>
                     <xsl:call-template name="dvt_2.rowview">
           </xsl:call-template>
           </xsl:for-each>
 </td>
</xsl:template>
.

Как я уже говорил, если я удалю своего рода, все будет хорошо, но несортировано, но мне нужна сортировка.

Любая идея?

Спасибо заранее

PS: если требуется полный код XSLT, я предоставлю.

Это было полезно?

Решение

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

Таким образом, фактическая проблема была в IF Test, который не позволил первому узеру Pass:

<xsl:template name="dvt_2.rowview"> 
    <xsl:if test="(position()=1)or(@Category!= (preceding-sibling::*[1]/@Category))">   
    //xslt
    </xsl:if>   
</xsl:template>
.

Так что каждый раз, когда я назвал его, Specifiek вторая категория отсортированного списка (или первая категория несортированного списка) не проходила, если и именно поэтому я не мог распечатать его.

Удаление этого, если тест, решил проблему.

Надеюсь, это будет полезно для других

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top