Question

Je travaille avec SharePoint 2007. J'essaie de modifier le DVWP avec le XSLT.

La partie Web tire les données de la liste, ce que je veux faire est de trier les données et de montrer les résultats. - Je ne peux pas trier les données directement parce que je dois trier / grouper par le champ qui est un champ de choix, donc je ne peux pas.

La seule solution viable pour moi était de modifier le XSLT. Tout s'est bien passé et bien jusqu'à ce que je rencontre un problème et que ce problème est un peu étrange.

Lorsque j'utilise TRY, il ne montre pas la première valeur de la table! Lorsque je supprimais TRY, j'ai 4 valeurs (uniques) que je devrais avoir, mais elles ne sont pas ordonnées, dès que je reçois le tri à l'intérieur de la 3 valeurs uniques, ce qui manque le premier. Et je totalis que je ne comprends pas comment est-ce même possible.

Je vais vous fournir des morceaux de XSLT que j'utilise, car ma soyez un atout pour m'aider à comprendre ce que je fais mal.

Pour distincter les valeurs uniques que j'utilise:

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

Dans ce sous-groupe (sous-modèle), je reçois ce comportement bizarre:

<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>

Comme je l'ai dit auparavant si je supprimais le tri, ce sera bien, mais non acheminé, mais j'ai besoin de tri.

une idée?

Merci d'avance

PS: Si le code XSLT complet est nécessaire, je vais fournir.

Était-ce utile?

La solution

J'ai trouvé la solution et je veux partager avec le reste, peut-être que cela les aidera à l'avenir ou à ceux qui pourraient rencontrer le même problème.

Donc, le problème réel était dans un test IF qui n'a pas laissé passer le premier nœud:

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

Donc, chaque fois que je l'ai appelé, la deuxième catégorie de liste triée (ou la première catégorie de liste non formée) n'a pas réussi le si et c'est pourquoi je ne pouvais pas l'imprimer.

Supprimer cela si le test, résolu le problème.

J'espère que cela sera utile pour d'autres

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top