Compartilhar via


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&amp;Created</Formula>
             <FormulaDisplayNames>=Title&amp;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);
}

See Also

Reference

Lists Class
Lists Members
Lists Web Service