muri 发表于 2015-9-27 09:28:34

使用Sharepoint的Lists Web Service调用UpdateListItems方法"增/删/改"List Items

  Lists.UpdateListItems方法的签名为:
    public XmlNode UpdateListItems (string listName,XmlNode updates);
第一个参数listName为要操作的List的名字, 其实也可以使用该List的GUID值(包括"{}");
关键是第二个参数, 是用CAML定义的XML格式的XmlNode节点, 我使用的一般的格式为:


<Batch OnError="Continue" ViewName="">
    <Method ID="" Cmd="New">
      <Field Name="FieldNameOne">FieldValueOne</Field>
      <Field Name="FieldNameTwo">FieldValueTwo</Field>
      
    </Method>
    <Method ID="" Cmd="Update">
      <Field Name="ID">IDValue</Field>
      <Field Name="FieldNameOne">FieldValueOne</Field>
      <Field Name="FieldNameTwo">FieldValueTwo</Field>
      
    </Method>
    <Method ID="" Cmd="Delete">
      <Field Name="ID">IDValue</Field>
      <Field Name="FieldNameOne">FieldValueOne</Field>
      <Field Name="FieldNameTwo">FieldValueTwo</Field>
      
    </Method>
   
</Batch>  
这里有要说明的地方:
一个Batch节点下可以有多个Method节点, 每个Method节点都有一个Cmd属性, 指明是那种操作, 可以为"New", "Update", 或者是"Delete";
每个Method节点下可以有多个Field节点, 这里有个关键点是: New的时候可以不指定, 但是Update和Delete的时候必须指定Name="ID"的Field节点, 否则操作会失败, 其实很容易可以想象出来其中的道理, 这个ID可以观察到, 这里推荐一个工具: SharePoint Manager 2007
页: [1]
查看完整版本: 使用Sharepoint的Lists Web Service调用UpdateListItems方法"增/删/改"List Items