Frage

Ich habe die gesucht JQuery Spservices Codebeispiele und MSDN Referenzen Für ein einfaches Beispiel, wie Sie mehrere ListItems mithilfe einer Wo-Klausel aktualisieren.

Code zum Aktualisieren eines einzelnen ListItems mit ID = 500 sieht folgendermaßen aus:

$(divId).html(waitMessage).SPServices({
    operation: "UpdateListItems",
    listName: "MyList",
    ID: 500,
    valuepairs: [["MyField", 1]],
    completefunc: function (xData, Status) {
    	$(divId).html("");
    }
});

Aber ist es auch möglich, ein Where hinzuzufügen.

<Where><Eq><FieldRef Name="Status"/><Value Type="Text">Ready</Value></Eq></Where>

Oder sollte ich es so tun wie dieser Beitrag ? (Rufen Sie zuerst die Liste ab und machen Sie dann eine Schleife für jedes Element?)

War es hilfreich?

Lösung

dort. Wenn Sie JQuery und die Webdienste verwenden (hoffentlich mit meinem Spservices Bibliothek!), Sie müssen den zweistufigen Prozess durchführen. Rufen Sie GetListitems mit Ihrem CamlQuery zuerst an, um die Artikel zu erhalten, mit denen Sie arbeiten müssen, und rufen Sie dann UpdatelistItems an, um die Änderungen vorzunehmen.

Dies ist übrigens nicht mein Design, sondern nur die Art und Weise, wie der SharePoint -Webdienst funktioniert. Gehen Sie im Zweifelsfall immer zur Quelldokumentation auf MSDN, um zu sehen, was für Parameter für jede Operation erforderlich ist. Ich habe Links zu allen Vorgängen in Spservices, die Sie direkt zur entsprechenden Seite auf MSDN bringen.

Schließlich ist die Batch -Idee in UpdatelistItems in ihrer Terminologie ein wenig irreführend. Tatsächlich können Sie "Batch" -Anfragen zu einem UpdatElistItems -Anruf "Batch" -Anfragen sein, aber Sie möchten dies möglicherweise nicht tun oder nicht, basierend auf den Anforderungen Ihrer Fehlerbehandlung. Auch hier überprüfen Sie am besten die SDK auf MSDN.

Bearbeiten: Ich habe Spservices in V0.5.8 eine neue Funktion hinzugefügt, die SpupdatemultiplelistItems namens namens tätig hat: http://spservices.codeplex.com/wikipage?title=%24%28%29.spServices.spupdatemultiplelistItems

Andere Tipps

Ich habe dies nicht speziell auf JQuery versucht, aber Sie können mehrere Listenelemente mit einem Stapel -Update aktualisieren.

Sie verwenden CAML, um Batch -Befehle zu erstellen und den Befehl mit der ProcessBatchData -Methode im SPWeb -Objekt auszuführen.

Es gibt ein gutes Code -Beispiel dazu bei MSDNhttp://msdn.microsoft.com/en-us/library/cc404818.aspx

Seine Bibliothek unterstützt ein Batch -Update, aber ich bin mir noch nicht sicher, ob das Batch -Update eine CAML -Abfrage unterstützt. Wenn Sie mehrere Elemente aktualisieren möchten, können Sie den GetItems -Dienst mit einer CAML -Abfrage verwenden, um die Elemente abzurufen, die Sie aktualisieren möchten. Sie können dann die JQuery jeweils bei der Rückkehr zu verwenden, um dann eine UpdateIsem -Funktion für jedes Element zu erstellen, das Sie aktualisieren möchten. Auch dies ist nur machbar, wenn Sie keine CAML -Abfrage für ein Batch -Update verwenden können.

Ich denke nicht, dass es als Batch -Update verfügbar ist.

Ich glaube, Sie müssten die Liste mit Ihrer CAML -Abfrage abfragen und dann die Ergebnisse mit Ihren Updates durchführen. Trotzdem habe ich Marc dazu veranlasst, zu sehen, ob er Ihnen eine formelle Antwort darauf bekommen kann.

SharePoint scheint nicht nativ zu aktualisieren, die Elemente basierend auf einer Abfrage basierend unter Verwendung von SPWeb.ProcessbatchData () basieren. Angesichts der Leistung des Versuchs, jeden Element mit einer ID zu aktualisieren (auch wenn es sich um eine große Batch -Anweisung handelt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top