Como começar a fazer uma web part personalizada no Visual Studio, a coleta de dados a partir de listas de sites diferentes?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/94446

Pergunta

Primeiro de tudo eu gostaria de dizer que estou muito novo para trabalhar com o Visual Studio 2013 e com C# bem.

Eu quero fazer uma certa parte da web no Visual Studio 2013 para um SharePoint 2013 ambiente de teste. A web part de necessidades para buscar itens de lista a partir de diferentes listas de anúncios, estas listas de anúncios podem ser em diferentes sites. Basicamente eu preciso ser capaz de mostrar o conteúdo de todos aqueles listas de anúncios em uma lista personalizada.

Aqui está um exemplo de cenário:

Subsite A: has a list named "List X"
Subsite B: has a list named "List Y"
Subsite C: has a custom web part that shows items from "List X" and "List Y"

Então eu quero fazer uma web part personalizada no Visual Studio que será colocada no subsite C, que irá mostrar os itens a partir de outras listas localizados em outros subsites.

Eu posso implantar em nosso ambiente de teste e posso adicionar uma web part personalizada para uma página, então eu tenho que ir, para mim o que é bom, mas eu só preciso de um empurrãozinho.
Algumas sugestões sobre o que eu poderia precisar (a partir da caixa de ferramentas, talvez) ou como eu posso obter dados a partir dessas listas do SharePoint (sugestões, links, qualquer coisa), que seriam todos muito bem-vindos.

A sua ajuda e o tempo é muito apreciada!

Foi útil?

Solução

Você pode usar SPSiteDataQuery para obter a Lista de dados a partir de vários sub-sites do mesmo conjunto de sites.

Abaixo está o código básico para começar ,bywhich você pode usar para obter todos os anúncio de itens de lista a partir de diferentes sub-sites:

using (SPSite oSPsite = new SPSite(SPContext.Current.Web.Url))
        {
            using (SPWeb oSPWeb = oSPsite.OpenWeb())
            {
                // Fetch using SPSiteDataQuery
                SPSiteDataQuery query = new SPSiteDataQuery();
                query.Lists = "<Lists ServerTemplate=\"104\" />";//104=List template ID for "Anouncements"
                query.ViewFields = "<FieldRef Name=\"Title\" />";//Add other fields which you want to get.
                query.Query = "";//you can add your caml query if you want to filter the list items returned
                query.Webs = "<Webs Scope=\"SiteCollection\" />";//Scope is set to site collection to get data from all anouncement lists in that site collection.
                DataTable dataTable = oSPWeb.GetSiteData(query);
            }
        }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top