Compartilhar via


Trabalhando com lista de objetos e coleções

Para executar ações em dados lista em um site SharePoint, primeiro você deve obter um objeto SPWeb T:Microsoft.SharePoint.SPWeb para servir como um ponto de entrada ao modelo de objeto, permitindo que você acessar listas, itens, documentos, os usuários, alertas, etc.. Para informações sobre como retornar Web sites SharePoint, consulte Obter referências a sites, aplicativos da Web e outros objetos de chave.

Objetos

A maioria das classes no Microsoft.SharePoint e iniciar espaços para nome Microsoft.SharePoint.Administration N:Microsoft.SharePoint.Administration com SP. Geralmente, as classes no Microsoft.SharePoint assembly Microsoft.SharePoint que não iniciar com este prefixo representam os controles da forma.

Windows SharePoint Services geralmente faz não salvar modificações do objeto propriedades para o banco de dados até você chamar o Update atualização sobre o objeto especificado. O seguinte exemplo mostra como a alteração de título e descrição para a lista Tarefas.

                             
Dim myList As SPList = myWeb.Lists("Tasks")
myList.Title = "New_Title"
myList.Description = "List_Description"
myList.Update()
                    SPList myList = myWeb.Lists["Tasks"];
myList.Title="New_Title";
myList.Description="List_Description";
myList.Update();

Observação

Os metadados para o documento não podem ser modificado usando o Update de atualização do objeto SPListItem SPListItem se o documento está check-out de uma biblioteca documento.

Coleções

Apenas como listas correm o centralizar de uma site do SharePoint, portanto, são coleções na centralizar de seus modelos objeto. Você pode usar cada coleção para adicionar, excluir, enumerar e atualização um tipo de objeto. Coleção geralmente classes compartilhar o seguinte características:

  • Tem um nome que termina em "Coleção".

  • Implementa a interface System.Collections.ICollection System.Collections.ICollection.

  • Possui um Count Contagem de propriedade do tipo Int32.

  • Tem um indexador Int32 que pode ser usado para o item ' enésimo ' na coleção get.

  • Tem um indexador que leva um identificador item.

  • Tem Add e Delete Excluir métodos.

Chamando o Add Adicionar método para uma coleção geralmente atualiza o banco de dados na back-end server com o apropriado dados, exceto quando informações adicionais é exigido em ordem para dados atualização. Este maiúsculas e minúsculas, usar o método Add adicionar retorna um objeto que você pode usar para coletar as informações. For example, to add an item to a list, first use the Add method of the Microsoft.SharePoint.SPListItemCollection class to return an SPListItem object, assign values to appropriate properties of the object, and then call the Updatemethod to effect changes within the content database.

Indexadores

Indexadores fornecem um meio útil ao acessar individual itens em coleções. Para retornar um item, use colchetes ( []) no C# ou parênteses ( ()) em Visual Basic para conter um índice ou um seqüência de caracteres que identifica o item dentro de coleção.

For exemplo, se mySite representa uma instância da classe SPWeb T:Microsoft.SharePoint.SPWeb, e SPList myList = mySite.Lists["Announcements"] retorna a lista Avisos em C#, enquanto myList Dim Dim myList As SPList = mySite.Lists("Announcements") retorna a mesma lista em Visual Basic. Em seguida, você pode usar o Items P:Microsoft.SharePoint.SPList.Items propriedade para o objeto lista para retornar todos os itens de lista na lista (em C#, SPListItemCollection myItems = myList.Items, ou em Visual Basic, myItems Dim Dim myItems As SPListItemCollection = myList.Items). Para retornar apenas um subconjunto de itens a partir de lista, você pode chamar método GetItems M:Microsoft.SharePoint.GetItems do objeto de lista e transmitir um objeto SPQuery T:Microsoft.SharePoint.SPQuery para especificar o subconjunto: SPListItemCollection myItems = myList.GetItems(myQuery) (em Visual Basic, myItems Dim Dim myItems As SPListItemCollection = myList.GetItems(myQuery)).

Você pode usar um indexador para retornar um campo específico de uma lista (de exemplo, myList.Items["Field_Name myList.Items["Field_Name"] in C#, or myList.Items("Field_Name") na Visual Basic). Você também pode especificar um nome campo em um indexador e iterar por meio de coleção de itens em uma lista em ordem para retornar valores a partir de campo. Este exemplo exibe os valores de data de conclusão, status e de título para cada item em uma lista:

                             
Dim myItem As SPListItem

For Each myItem In  myItems

    Response.Write(SPEncode.HtmlEncode(myItem("Due Date").ToString()) + "<BR>")
    Response.Write(SPEncode.HtmlEncode(myItem("Status").ToString()) + "<BR>")
    Response.Write(SPEncode.HtmlEncode(myItem("Title").ToString()) + "<BR>")

Next myItem
                    foreach(SPListItem myItem in myItems)
{
    Response.Write(SPEncode.HtmlEncode(myItem["Due Date"].ToString()) + "<BR>");
    Response.Write(SPEncode.HtmlEncode(myItem["Status"].ToString()) + "<BR>");
    Response.Write(SPEncode.HtmlEncode(myItem["Title"].ToString()) + "<BR>");
}

Observação

Além das exigir um using ( Imports na Visual Basic) para o espaço para nome Microsoft.SharePoint N:Microsoft.SharePoint, o exemplo anterior requer uma diretiva para o espaço para nome Microsoft.SharePoint.Utilities N:Microsoft.SharePoint.Utilities.

O próximo exemplo mostra como retornar todos os valores de título e status para a lista Tarefas em um site SharePoint.

                             
Dim myWeb As SPWeb = SPContext.Current.Web
Dim myTasks As SPList = myWeb.Lists("Tasks")
Dim myItems As SPListItemCollection = myTasks.Items
Dim myItem As SPListItem

For Each myItem In  myItems

    Response.Write(SPEncode.HtmlEncode(myItem("Title").ToString()) + " :: " _
        & SPEncode.HtmlEncode(myItem("Status").ToString()) + "<BR>")

Next myItem
                    SPWeb mySite = SPContext.Current.Web;

SPList myTasks = mySite.Lists["Tasks"];
SPListItemCollection myItems=myTasks.Items;

foreach(SPListItem myItem in myItems)
{
    Response.Write(SPEncode.HtmlEncode(myItem["Title"].ToString()) + " :: " + 
        SPEncode.HtmlEncode(myItem["Status"].ToString()) + "<BR>");
}

Observação

Além das exigir um using ( Imports na Visual Basic) para o espaço para nome Microsoft.SharePoint Microsoft.SharePoint, o exemplo anterior requer uma diretiva para o espaço para nome Microsoft.SharePoint.Utilities Microsoft.SharePoint.Utilities.

Você também pode usar indexadores para modificar valores em uma lista. No seguinte exemplo, um novo item da lista é adicionado a uma coleção e os valores para uma coluna URL são atribuídos para o item:

                             
Dim myNewItem As SPListItem = myList.Items.Add()

myNewItem("URL_Field_Name") = "URL, Field_Description"

myNewItem.Update() 
                    SPListItem myNewItem = myList.Items.Add();

myNewItem["URL_Field_Name"] ="URL, Field_Description";

myNewItem.Update();

Observação

O tipo de campo URL URL é exclusivo porque ele envolve dois valores (separados por uma vírgula e um espaço) e no exemplo acima esses valores são ambos atribuídos para o novo item por um único indexador.

O seguinte exemplo define os valores de status e de título para um item da lista.

                    Dim myItem As SPListItem = myItems(0)

myItem("Status") = "Task_Status"
myItem("Title") = "Task_Title"

myItem.Update() 
                    SPListItem myItem = myItems[0];

myItem["Status"]="Task_Status";
myItem["Title"]="Task_Title";

myItem.Update();

Observação

Um indexador gera um ArgumentOutOfRange ArgumentOutOfRange exceção se ele não localizar o item especificado.

Para obter informações sobre formatos dados específicos que são usados para itens lista Windows SharePoint Services, consulte o SPListItem T:Microsoft.SharePoint.SPListItem classe.

Consulte também

Referência

Microsoft.SharePoint
Microsoft.SharePoint.Administration

Conceitos

Os espaços para nome no modelo de objeto de serviços SharePoint do Windows
Guia de Introdução Com programaticamente personalizar uma Web Site SharePoint em Visual Studio
Obter referências a sites, aplicativos da Web e outros objetos de chave
Registrando e importando os espaços para nome