Lists.UpdateList Method
Atualiza uma lista com base no campo especificado definições e propriedades da lista.
Web Service: ListsWeb Reference: http://<Site>/_vti_bin/Lists.asmx
Syntax
'Declaração
<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)> _
PublicFunctionUpdateList ( _
listNameAsString, _
listPropertiesAsXmlNode, _
newFieldsAsXmlNode, _
updateFieldsAsXmlNode, _
deleteFieldsAsXmlNode, _
listVersionAsString _
) AsXmlNode
'Uso
DiminstanceAsListsDimlistNameAsStringDimlistPropertiesAsXmlNodeDimnewFieldsAsXmlNodeDimupdateFieldsAsXmlNodeDimdeleteFieldsAsXmlNodeDimlistVersionAsStringDimreturnValueAsXmlNodereturnValue = 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)]
publicXmlNodeUpdateList (
stringlistName,
XmlNodelistProperties,
XmlNodenewFields,
XmlNodeupdateFields,
XmlNodedeleteFields,
stringlistVersion
)
Parameters
- listName
Uma seqüência de caracteres que contém o GUID para a lista.
listProperties
Um fragmento XML in a forma a seguir que podem ser atribuídos a um objeto System.Xml.XmlNode e que contém todas as propriedades Lista a ser atualizado.<List Title="List_Name" Description="List_Description" Direction="LTR"/>
A tabela a seguir descreve os atributos que podem ser usados no parâmetro de listProperties.
Nome
Descrição
AllowMultiResponses
TRUE Para permitir várias respostas à pesquisa.
Description
Uma seqüência de caracteres que contém a descrição para a lista.
Direction
Uma seqüência de caracteres que contém LTR se a ordem de leitura for da esquerda para a direita, RTL se ele é da direita para esquerda, ou None.
EnableAssignedToEmail
TRUE Para habilitar email Assigned-to para a lista de questões.
EnableAttachments
TRUE Para habilitar anexos aos itens na lista. Não aplicar a bibliotecas de documentos.
EnableModeration
TRUE Para ativar aprovação de conteúdo para a lista.
EnableVersioning
TRUE Para ativar o controle de versão para a lista.
Hidden
TRUE Para ocultar a lista para que ele não aparece na Documentos e Listas Página, barra Quick Launch, Modify Site Content de página ou ADD COLUMN a página como uma opção para campos de pesquisa.
MultipleDataList
TRUE Para especificar que a lista em um site de Espaço de Trabalho de Reunião contém dados de várias instâncias de reunião no site.
Ordered
TRUE Para especificar que a opção para permitir que os usuários reordenar os itens na lista de está disponível na página Editar exibição para a lista.
ShowUser
TRUE Para especificar que nomes de usuários são mostrados nos resultados da pesquisa.
Title
Uma seqüência de caracteres que contém o título da lista.
newFields
Um fragmento XML na forma a seguir que podem ser atribuídos a um objeto System.Xml.XmlNode e que contém elementos dentro método blocos Field so that as adicionar operações podem ser rastreadas individualmente.<Fields> <Method ID="1"> <Field ReadOnly="TRUE" Type="Counter" PrimaryKey="TRUE" DisplayName="Field1_Name" FromBaseType="TRUE" /> </Method> <Method ID="2"> <Field Type="Text" DisplayName="Field2_Name" Required="TRUE" FromBaseType="TRUE" MaxLength="255" Description="Description" /> </Method> ... </Fields>
Para adicionar um novo campo a um modo de exibição de lista por meio de UpdateList método, use o atributo AddToView do elemento Method para especificar a GUID do modo de exibição.
Criar um campo calculado é diferente da criação outros campos porque você deve especificar uma fórmula, as in o exemplo a seguir, que cria um novo campo que concatena os valores dos campos de título e criado para cada item.
<Fields> <Method ID="1"> <Field Type="Calculated" DisplayName="myCalcField" ResultType="Text"> <Formula>=Title&Created</Formula> <FormulaDisplayNames>=Title&Created</FormulaDisplayNames> <FieldRefs> <FieldRef Name="Title"/> <FieldRef Name="Created"/> </FieldRefs> </Field> </Method> </Fields>
In the preceding example, the ampersand ("&") in the formula must be encoded for use in the SOAP request.
updateFields
Um fragmento XML na forma a seguir que podem ser atribuídos a um objeto System.Xml.XmlNode e que contém elementos dentro método blocos Field so that a atualização de operações pode ser rastreadas individualmente.<Fields> <Method ID="3"> <Field ReadOnly="TRUE" Type="Counter" Name="MyID" PrimaryKey="TRUE" DisplayName="MyID" FromBaseType="TRUE" /> </Method> <Method ID="4"> <Field Type="Text" Name="Title" DisplayName="DocTitle" Required="TRUE" FromBaseType="TRUE" MaxLength="255" Description="Title of your document" /> </Method> ... </Fields>
deleteFields
Um fragmento XML in a forma a seguir que contém elementos Field especificando os nomes dos campos para excluir dentro método bloqueia para que as operações excluir possam ser controladas individualmente.<Fields> <Method ID="5"> <Field Name="Field1" /> </Method> <Method ID="6"> <Field Name="Field2" /> </Method> ... </Fields>
- listVersion
Uma seqüência de caracteres que contém a versão da lista que está sendo atualizada so that conflito detecção pode ser executada.
Return Value
Um fragmento XML que contém a esquema lista depois que as alterações são aplicadas, e um bloco de resultados para cada campo que é novo, atualizados ou excluídos. O fragmento está em forma a seguir e pode ser atribuído a um objeto 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>
Example
O exemplo de código a seguir modifica os campos e propriedades de uma lista no site atual, mostrando como implementar cada parâmetro do método UpdateList especificada. O exemplo usa o método GetList para retornar a versão da lista e um objeto XmlDocument para criar objetos XmlNode de parâmetros.
Esse exemplo requer que um using (Visual C#) ou Imports (Visual Basic) diretiva estar incluído para o namespace System.Xml.
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);
}