Building SharePoint Profil Abfragen mit CAML
Oft beim Erstellen von Anwendungen, die sich stark verwenden SharePoint Ansichten für Datenspeicherung ist es hilfreich, CAML Bauherren in einzelne statische Klassen zu bauen, dass ein kontinuierlicher String-Darstellung des beliebige Abfrage zurück. Um dies zu demonstrieren, die folgenden Beispiele BuildDefaultViewQuery, BuildPrivateViewQuery und BuildPublicViewQuery:
- BuildDefaultViewQuery ( ) private static string BuildDefaultViewQuery ()
- (
- "<Where>" ) ; Baumeister. Append ( "<Where>");
- "<Eq><FieldRef Name='DefaultView' /><Value Type='Boolean'>" ) ; Baumeister. Append ( "<Eq> <FieldRef Name='DefaultView' /> <Value Type='Boolean'>");
- "1" ) ; Baumeister. Append ( "1");
- "</Value></Eq></Where>" ) ; Baumeister. Append ( "</ Value> </ Eq> </ Where>");
- ( ) ; Rückkehr Baumeister. ToString ();
- )
- BuildPrivateViewQuery ( string user ) private static string BuildPrivateViewQuery (string user)
- (
- "<OrderBy><FieldRef Name='ViewName'/> </OrderBy>" ) ; Baumeister. Append ( "<OrderBy> <FieldRef Name='ViewName'/> </ OrderBy>");
- "<Where><Eq><FieldRef Name='ViewCreator' /><Value Type='Text'>" ) ; Baumeister. Append ( "<Where> <Eq> <FieldRef Name='ViewCreator' /> <Value Type='Text'>");
- user ) ; Baumeister. Append (user);
- "</Value></Eq></Where>" ) ; Baumeister. Append ( "</ Value> </ Eq> </ Where>");
- ( ) ; Rückkehr Baumeister. ToString ();
- )
- BuildPublicViewQuery ( string user ) private static string BuildPublicViewQuery (string user)
- (
- "<OrderBy><FieldRef Name='Audience'/> <FieldRef Name='ViewName'/></OrderBy>" ) ; Baumeister. Append ( "<OrderBy> <FieldRef Name='Audience'/> <FieldRef Name='ViewName'/> </ OrderBy>");
- "<Where><Or><Eq><FieldRef Name='ViewCreator' /><Value Type='Text'>" ) ; Baumeister. Append ( "<Where> <oder> <Eq> <FieldRef Name='ViewCreator' /> <Value Type='Text'>");
- user ) ; Baumeister. Append (user);
- "</Value></Eq>" ) ; Baumeister. Append ( "</ Value> </ Eq>");
- "<Eq><FieldRef Name='Audience' /><Value Type='Choice'>" ) ; Baumeister. Append ( "<Eq> <FieldRef Name='Audience' /> <Value Type='Choice'>");
- "1" ) ; Baumeister. Append ( "1");
- "</Value></Eq></Or></Where>" ) ; Baumeister. Append ( "</ Value> </ Eq> </ Or> </ Where>");
- ( ) ; Rückkehr Baumeister. ToString ();
- )
Es sei darauf hingewiesen, dass es einige Konstanten, die statt auf eine Aufzählung könnten extrahiert und dann Enum.GetName könnten für eine bessere Verteilung Komponente verwendet werden. Allerdings, in diesem Beispiel, da es nur auf die darüber liegenden Konstrukte zeigen, ist immer zielgerichtet Ebene.
Um ein statischer CAML Methoden verwenden, wird die Methode ReturnCollectionExample einige grundlegende Parameter zu nehmen, als die Artikel-Sammlung mit dem BuildPrivateViewQuery Abfrage zugeordnet zurückzukehren.
- string url, string viewName, string userId ) private static SPListItemCollection (string url, string viewName, string userId)
- (
- (
- SPWeb web = site. OpenWeb ( ) ) mit (= SPWeb web site. OpenWeb ())
- (
- Query = BuildPrivateViewQuery ( userId ) } ; var query = new SPQuery (Query = BuildPrivateViewQuery (userId));
- [ viewName ] . GetItems ( query ) ; Rückkehr Web. Listen [viewName]. GetItems (query);
- )
- )
- )
Keine Kommentare »
Noch keine Kommentare.
RSS-Feed für Kommentare zu diesem Beitrag. TrackBack-URL






























