2010-06-02 25 views
0

Je voudrais mettre à jour un élément de liste en utilisant SharePoint et je suis en train de faire des bugs pour trouver 1 exemple CAML décent.Comment mettre à jour un élément de liste SharePoint via des services Web à l'aide d'une clause where?

Voici ce que je veux faire, dans SQL ma requête ressemblerait à quelque chose comme ceci

mise à jour champ set [table] = « valeur » où fieldID = id; Donc, cela voudrait dire que j'ai 1 élément dans une liste Je voudrais mettre à jour 1 champ sur étant donné l'ID de ce listitem.

J'ai essayé, mais ça ne marche pas:

batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" + 
      "<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field>" + 
      "<Where><Eq><FieldRef Name='ID' /><Value Type='Text'>" + id + "</Value></Eq></Where></Method>"; 

Répondre

0

Je vais ajouter cette réponse pour la communauté, mais il pourrait ne pas répondre à toutes vos questions.

batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" + 
       "<Field Name='ID'>" + id + "</Field>" + 
      "<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field></Method>"; 

Il semble que le premier champ que vous spécifiez soit la clause where.

Je n'ai aucune idée de la façon dont vous feriez un filtrage avancé avec ceci (nots ou exclusions ou dans des clauses ou des plages). Mais espérons que cette information de base aide.

0

Vous n'avez pas besoin d'utiliser la clause where pour mettre à jour un élément de liste.

atchElement.InnerXml = "<Method ID='1' Cmd='Update'>" + 
      "<Field Name='DeliveryStatus'>" + newStatus.ToString() + "</Field>" + 
      "<FieldRef Name='ID' /><Value Type='Text'>" + id + "</Value></Method>"; 

La seule chose à faire est de fournir l'ID comme ci-dessus.

+0

Et si vous vouliez mettre à jour tous les éléments, disons que vous aviez un champ Activé - avec des valeurs définies sur Vrai? –

+0

@JL Je pense que vous avez besoin de mettre à jour les éléments dans une boucle. Je ne l'ai pas fait avant. –