如何更新没有ID列的SharePoint列表项

时间:2019-06-25 22:01:25

标签: sharepoint splistitem

我正在尝试更新SharePoint列表中归档的状态。进行了一些谷歌搜索,发现大多数示例都使用ID列来定位列表项,但是我的列表没有这样的列,只有Windows登录名和状态列。我想知道XML是什么样的吗?

这是我想出的,但是不起作用:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">       
    <listName>SPUsers</listName>
    <updates>
      <Batch PreCalc='TRUE' OnError='Continue'>
        <Method ID="1" Cmd="Update">
          <Field Name="ID">ABC</Field>
          <Field Name="ItemStatus">Completed?ID=ABC</Field>
        </Method>
      </Batch>
    </updates>
  </UpdateListItems>
</soapenv:Body>
</soapenv:Envelope>

这是结果:

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
  <UpdateListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
    <UpdateListItemsResult>
      <Results>
        <Result ID="1,Update">
          <ErrorCode>0x80004005</ErrorCode>
          <ErrorText>Cannot complete this action.  Please try again.</ErrorText> 
        </Result>
      </Results>
    </UpdateListItemsResult>
  </UpdateListItemsResponse>
</soap:Body>
</soap:Envelope>

知道发生了什么事吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

我相信SharePoint中的所有列表项都会获得自动生成的ID。我将使用列表视图或拉出列表项以查看ID是否存在。

答案 1 :(得分:1)

SharePoint将自动生成列表项ID,默认视图只是不显示ID字段,您可以转到列表视图设置以显示该字段,以便您知道ID。

enter image description here