1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Sharepoint Liste mit XSLT bearbeiten

Dieses Thema im Forum "XML Technologien" wurde erstellt von Roxas, 6. Juni 2013.

  1. Roxas

    Roxas Grünschnabel

    Hi Leute,

    ich bin gerade dabei in einem Webpart für Inhaltsabfrage eine Liste mit XSLT verändert darzustellen.
    Mein Problem bezieht sich dabei auf die Reihenfolge wie die einzelnen Elemente(Zeilen) dargestellt werden.
    Ich würde gern alles nach dem Titel der Elemente sortieren. Um mein Problem etwas genauer zu beschreiben werde ich es einmal versuchen zu veranschaulichen:

    Meine Liste:

    Titel Beschreibung Sonstiges
    1 2 3
    4 5 6

    Im Moment sieht meine Ausgabe durch XSLT so aus:

    4 5 6
    1 2 3

    So sollte sie aussehen:

    1 2 3
    4 5 6

    Der Kopf meines Templates sieht so aus:
    <xsl:template name="xsltest" match="Row[@Style='xsltest']" mode="itemstyle">

    So wie es aussieht wird das Template bei jeder Zeile neu durchlaufen. Angefangen wird bei der ID 1 und somit wird alles umgedreht.
    Ich habe es bereits mit einem <xsl:sort>-Befehlt probiert aber der funktioniert in einem Template so direkt nicht. Ich habe gerade erst begonnen mit XSLT und weiß daher nicht weiter. Wenn mir irgendjemand helfen kann wäre ich sehr dankbar :).
     
  2. Martin Honnen

    Martin Honnen Mitglied

    Poste mal das gesamte XSLT, so es nicht zu lang ist. Und dann, wenn möglich, auch die Zuordnung deiner "Liste" zu XML-Elementen, damit wir wissen, wie die "Sharepoint-Liste" in XML dargestellt wird.
     
  3. Roxas

    Roxas Grünschnabel

    Hier das XSL:
    Code (Text):
    1. <xsl:template name="xsltest" match="Row[@Style='xsltest']" mode="itemstyle">
    2.         <div id="Beispielelement">
    3.             <div class="Titel">
    4.                 <h1>
    5.                     <xsl:value-of select="@Title"/>
    6.                     <xsl:value-of select="@ID"/>
    7.                 </h1>
    8.             </div>
    9.             <div class="Notizen">
    10.                 <div class="NotizfeldTitel">
    11.                     Tätigkeiten:
    12.                 </div>
    13.                 <div class="Notizfeld">
    14.                     <xsl:value-of select="@Notizen" disable-output-escaping="yes"/>
    15.                 </div>
    16.             </div>
    17.             <div class="Author">
    18.                 <div class="AuthorLeft">
    19.                     <xsl:variable name="Link" select="@Webseite"/>
    20.                     Webseite:
    21.                     <a href="{$Link}">
    22.                         <xsl:value-of select="$Link"/>
    23.                     </a>
    24.                 </div>
    25.                 <div class="AuthorRight">
    26.                     Von
    27.                     <xsl:value-of select="@Author"/>
    28.                     , erstellt am
    29.                     <xsl:value-of select="@Created"/>
    30.                 </div>
    31.             </div>
    32.         </div>
    33.     </xsl:template>
    Die Liste in Sharepoint ist eine ganz normale benutzerdefinierte Liste die folgende Spalten enthält: Titel(Text), Webseite(Hyperlink), Notizen(RichtTextBox).

    Wie möchte ich die Elemente z.B. nach dem Titel sortieren können.
     
  4. Martin Honnen

    Martin Honnen Mitglied

    Gibt es keine weiteren Templates? Sortieren man kann nur mit
    Code (Text):
    1. <xsl:apply-templates select="Row">
    2.   <xsl:sort select="@Title"/>
    3. </xsl:apply-templates>
    oder
    Code (Text):
    1. <xsl:for-each select="Row">
    2.   <xsl:sort select="@Title"/>
    3.   ...
    4. </xsl:for-each>
    In deinem geposteten Template sehe ich weder for-each noch apply-templates, um xsl: sort hinzufügen zu können. In dem Template kann man also nichts ändern, um eine Sortierung zu erreichen.
     
  5. Roxas

    Roxas Grünschnabel

    Ich habe die Lösung inzwischen gefunden:
    Man musste die Sortierung nur im Sharepoint-Webpart ändern.
     
Die Seite wird geladen...