Метод Lists.UpdateList
Обновляет список на основе определения указанного поля и свойства списка.
Пространство имен: WebSvcLists
Сборка: STSSOAP (в STSSOAP.dll)
Синтаксис
'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/UpdateList", RequestNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
ResponseNamespace := "https://schemas.microsoft.com/sharepoint/soap/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function UpdateList ( _
listName As String, _
listProperties As XmlNode, _
newFields As XmlNode, _
updateFields As XmlNode, _
deleteFields As XmlNode, _
listVersion As String _
) As XmlNode
'Применение
Dim instance As Lists
Dim listName As String
Dim listProperties As XmlNode
Dim newFields As XmlNode
Dim updateFields As XmlNode
Dim deleteFields As XmlNode
Dim listVersion As String
Dim returnValue As XmlNode
returnValue = instance.UpdateList(listName, _
listProperties, newFields, updateFields, _
deleteFields, listVersion)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/sharepoint/soap/UpdateList", RequestNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
ResponseNamespace = "https://schemas.microsoft.com/sharepoint/soap/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public XmlNode UpdateList(
string listName,
XmlNode listProperties,
XmlNode newFields,
XmlNode updateFields,
XmlNode deleteFields,
string listVersion
)
Параметры
listName
Тип: System.StringСтрока, содержащая GUID для списка.
listProperties
Тип: System.Xml.XmlNodeФрагмент XML в следующем формате, который можно назначить объект System.Xml.XmlNode и, который содержит все свойства списка для обновления.
newFields
Тип: System.Xml.XmlNodeФрагмент XML в следующем формате, который можно назначить объект System.Xml.XmlNode и, который содержит элементы Field внутри блоков метод, чтобы добавить операции можно отслеживать по отдельности.
updateFields
Тип: System.Xml.XmlNodeФрагмент XML в следующем формате, который можно назначить объект System.Xml.XmlNode и, который содержит элементы Field внутри метода блоки, чтобы операции обновления можно отслеживать по отдельности.
deleteFields
Тип: System.Xml.XmlNodeФрагмент XML в следующей форме, которая содержит элементы Field , указав имена полей для удаления внутри метода блоки, чтобы операции удаления можно отслеживать по отдельности.
listVersion
Тип: System.StringСтрока, содержащая версию списка, который обновляется таким образом, можно выполнить обнаружение конфликтов.
Возвращаемое значение
Тип: System.Xml.XmlNode
Фрагмент XML, который содержит схему списка после применения изменений и блок результатов для каждого поля, который является новым, обновлении или удалении. Фрагмент кода находится в следующей форме и могут быть назначены объекту System.Xml.XmlNode .
<Results xmlns="https://schemas.microsoft.com/sharepoint/soap/">
<NewFields>
<Method ID="1">
<ErrorCode>0x00000000</ErrorCode>
<Field Type="DateTime" DateOnly="TRUE"
DisplayName="Field1_Display_Name" FromBaseType="TRUE"
Name="Field1_Name" ColName="datetime2" />
</Method>
<Method ID="2">
<ErrorCode>0x00000000</ErrorCode>
<Field Type="Text" DisplayName="Field2_Display_Name"
Required="TRUE" FromBaseType="TRUE"
Description="Description" Name="Field2_Name"
ColName="nvarchar4" />
</Method>
</NewFields>
<UpdateFields>
<Method ID="3">
<ErrorCode>0x00000000</ErrorCode>
<Field Type="Number" Name="NumberColumn" DisplayName="Numbers"
Required="TRUE" FromBaseType="TRUE"
Description="Description" ColName="float1" />
</Method>
<Method ID="4">
<ErrorCode>0x00000000</ErrorCode>
<Field Type="Text" Name="Title" DisplayName="Title"
Required="TRUE" FromBaseType="TRUE"
Description="Description" ColName="nvarchar1" />
</Method>
</UpdateFields>
<DeleteFields>
<Method ID="5">
<ErrorCode>0x00000000</ErrorCode>
</Method>
<Method ID="6">
<ErrorCode>0x00000000</ErrorCode>
</Method>
</DeleteFields>
<ListProperties DocTemplateUrl=""
DefaultViewUrl="/Site_Name/Lists/List_Name/AllItems.aspx"
ID="{6800A6B5-5B01-4E7B-B847-7F0C01F1F602}" Title="List_Name"
Description="New_Description"
ImageUrl="/_layouts/images/itgen.gif"
Name="{6800A6B5-5B01-4E7B-B847-7F0C01F1F602}" BaseType="0"
ServerTemplate="100"
Created="20030619 05:35:34" Modified="20030619 05:39:43"
LastDeleted="20030619 05:35:34"
Version="11" Direction="none" ThumbnailSize="" WebImageWidth=""
WebImageHeight=""
Flags="4096" ItemCount="0" AnonymousPermMask=""
RootFolder="/Site_Name/Lists/List_Name"
ReadSecurity="1" WriteSecurity="1" Author="1"
EventSinkAssembly="" EventSinkClass=""
EventSinkData="" EmailInsertsFolder="" AllowDeletion="True"
AllowMultiResponses="False"
EnableAttachments="True" EnableModeration="False"
EnableVersioning="False" Hidden="False"
MultipleDataList="False" Ordered="False" ShowUser="True" />
</Results>
Примеры
В следующем примере кода показано изменение поля и свойства указанного списка на текущем сайте, показывающих, как реализовать каждого параметра метода UpdateList . В примере используется метод GetList для возврата версию списка и использует объект XmlDocument для создания объектов XmlNode для параметров.
В этом примере требуется директива Imports (Visual Basic) была включена в пространство имен System.Xml или using (Visual C#).
Dim listService As New Web_Reference_Folder.Lists()
listService.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim ndList As XmlNode = listService.GetList("List_Name")
Dim ndVersion As XmlNode = ndList.Attributes("Version")
Dim xmlDoc = New System.Xml.XmlDocument()
Dim ndDeleteFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "")
Dim ndProperties As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element,
"List", "")
Dim ndTitleAttrib As XmlAttribute =
CType(xmlDoc.CreateNode(XmlNodeType.Attribute, "Title", ""),
XmlAttribute)
Dim ndDescriptionAttrib As XmlAttribute =
CType(xmlDoc.CreateNode(XmlNodeType.Attribute, "Description", ""), _
XmlAttribute)
Dim ndNewFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "")
Dim ndUpdateFields As XmlNode = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "")
ndTitleAttrib.Value = "List_Name"
ndDescriptionAttrib.Value = "New_Description"
ndProperties.Attributes.Append(ndTitleAttrib)
ndProperties.Attributes.Append(ndDescriptionAttrib)
ndDeleteFields.InnerXml = "<Method ID='5'>
<Field Name='Field1'/></Method>" + _
"<Method ID='6'><Field Name='Field2'/></Method>"
ndNewFields.InnerXml = "<Method ID='1'>" + _
"<Field Type='DateTime' DateOnly='TRUE' DisplayName='NewField1'
FromBaseType='TRUE'/>" + _
"</Method><Method ID='2'>" + _
"<Field Type='Text' DisplayName='NewField2' Required='TRUE'
FromBaseType='TRUE' Description='Description'/>" + _
"</Method>"
ndUpdateFields.InnerXml = "<Method ID='3'>" + _
"<Field Type='Number' Name='Field1' DisplayName='Field1_Display'
Required='TRUE' FromBaseType='TRUE'
Description='Description'/>" + "</Method><Method ID='4'>" + _
"<Field Type='Text' Name='Field2' DisplayName='Field2_Display'
Required='TRUE' FromBaseType='TRUE'
Description='Description'/>" + _
"</Method>"
Try
Dim ndReturn As XmlNode =
listService.UpdateList("f2c47fbe-0fe1-4c84-8ed0-f56912f3dca7",
ndProperties, ndNewFields, _
ndUpdateFields, ndDeleteFields, ndVersion.Value)
MessageBox.Show(ndReturn.OuterXml)
Catch ex As Exception
MessageBox.Show("Message:" + ControlChars.Lf + ex.Message +
ControlChars.Lf + _
"StackTrace:" + ControlChars.Lf + ex.StackTrace)
End Try
Web_Reference_Folder.Lists listService = new Web_Reference_Folder.Lists();
listService.Credentials= System.Net.CredentialCache.DefaultCredentials;
XmlNode ndList = listService.GetList("List_Name");
XmlNode ndVersion = ndList.Attributes["Version"];
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndDeleteFields = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "");
XmlNode ndProperties = xmlDoc.CreateNode(XmlNodeType.Element, "List",
"");
XmlAttribute ndTitleAttrib =
(XmlAttribute)xmlDoc.CreateNode(XmlNodeType.Attribute,
"Title", "");
XmlAttribute ndDescriptionAttrib =
(XmlAttribute)xmlDoc.CreateNode(XmlNodeType.Attribute,
"Description", "");
XmlNode ndNewFields = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "");
XmlNode ndUpdateFields = xmlDoc.CreateNode(XmlNodeType.Element,
"Fields", "");
ndTitleAttrib.Value = "List_Name";
ndDescriptionAttrib.Value = "New_Description";
ndProperties.Attributes.Append(ndTitleAttrib);
ndProperties.Attributes.Append(ndDescriptionAttrib);
ndDeleteFields.InnerXml="<Method ID='5'>" +
"<Field Name='Field1'/></Method>" +
"<Method ID='6'><Field Name='Field2'/>" +
"</Method>";
ndNewFields.InnerXml = "<Method ID='1'>" +
"<Field Type='DateTime' DateOnly='TRUE' DisplayName='NewField1'
FromBaseType='TRUE'/>" +
"</Method><Method ID='2'>" +
"<Field Type='Text' DisplayName='NewField2' Required='TRUE'
FromBaseType='TRUE' Description='Description'/>" +
"</Method>";
ndUpdateFields.InnerXml = "<Method ID='3'>" +
"<Field Type='Number' Name='Field1' DisplayName='Field1_Display'
Required='TRUE' FromBaseType='TRUE'
Description='Description'/>" +
"</Method><Method ID='4'>" +
"<Field Type='Text' Name='Field2' DisplayName='Field2_Display'
Required='TRUE' FromBaseType='TRUE'
Description='Description'/>" +
"</Method>";
try
{
XmlNode ndReturn =
listService.UpdateList("f2c47fbe-0fe1-4c84-8ed0-f56912f3dca7",
ndProperties, ndNewFields, ndUpdateFields, ndDeleteFields,
ndVersion.Value);
MessageBox.Show(ndReturn.OuterXml);
}
catch (Exception ex)
{
MessageBox.Show("Message:\n" + ex.Message + "\nStackTrace:\n" +
ex.StackTrace);
}