2009-06-17 7 views
1

Wie kann ich ein Sharepoint-Webpart erstellen, das auf eine Liste zugreift und auf die CAML angewendet werden kann?sharepoint webpart mit caml und xslt

Die CAML benötigt Rückholeinzelteile nur Liste angezeigt werden, die das Feld mit „Position“ hat> 0

ich brauche auch die webpart Xslt den angewandt zu haben.

+0

Zusätzliche Anforderung für "Position"> 0, um zu antworten. –

Antwort

3

Sie müssen das Inhaltsabfrage-Webpart zu Ihrer Seite hinzufügen (Hinweis: erfordert MOSS nicht frei WSS). Auf diese Weise können Sie Ihre Daten abfragen und eine XSL-Transformation darauf anwenden.

Mit dem Webpart können Sie eine bestimmte Websitesammlung, ein Web oder eine Liste abfragen. Sie können dann Parameter festlegen, um Daten eines bestimmten Typs zurückzugeben und Filter anzuwenden, zu sortieren und zu gruppieren. Sie können auch auswählen, wie die Daten angezeigt werden sollen, die dem Endbenutzer als Dropdown-Liste mit Optionen angezeigt werden. Jede dieser Optionen wird von einer XSL-Transformation unterstützt.

ist eine der besten Ressourcen, um Ihnen zu helfen, mit der Erstellung Ihrer eigenen Transformation und Konfiguration des CQWP zu beginnen. Außerdem wird erläutert, wie sichergestellt wird, dass alle Felder, die Sie benötigen, an die XSLT übergeben werden (standardmäßig geschieht dies nur für eine kleine Untergruppe).

Update:

Um nur Listenelemente zurück, wo das Feld "Position"> 0, es am einfachsten ist dies auch in XSLT zu tun. Sie müssen das Feld Position zu CommonViewFields hinzugefügt haben, damit es an XSLT übergeben wird. Dann in Ihrem benutzerdefinierten Elementstil (in ItemStyle.xsl wenn Sie Heathers Post folgen), fügen Sie die folgenden Schritte aus:

<xsl:if test="@Position &gt; 0"> 
    <!-- Display desired row output --> 
</xsl:if> 

Diese implizit ignoriert, wenn "Position" < = 0.

1

ich mit Alex einverstanden, dass Das Content Query-Webpart (CQWP) ist der beste Weg, wenn möglich.

Wenn Sie jedoch in den Code einsteigen möchten, können Sie etwas wie folgt tun. Der grobe Teil ist es, es in XML zu bekommen, obwohl es eine einfache Möglichkeit gibt, es in eine nicht-benutzerdefinierte (wenn auch hässliche) Form von XML zu bekommen.

SPList list = web.Lists["My List Name"]; 
SPView view = list.Views["My View Name"]; // This view would define Postion > 0 
SPQuery query = new SPQuery(view); 
SPListItemCollection items = list.GetItems(query); 

// Iterate through results and generate XML 

Wenn Sie eine vorhandene Ansicht nicht verwenden möchten, müssen Sie das SPQuery Objekt von Hand einzurichten; Setzen Sie seine ViewFields, Query und RowLimit auf ein Minimum. Sie können die a CAML Query Tool verwenden, um Ihnen dabei zu helfen.

Verwandte Themen