Inquiridor
Associar uma llista filtrada à outra ou carregar a mesma lista com filtro?

Pergunta
-
Eu preciso atribuir uma lista filtrada para outra lista e retorná-la, no entanto eu não sei a estrutura da lista que irá ser filtrada, só sei seu nome. O problema é que com o filtro eu consigo uma coleção de itens da lista e não a mesma filtrada e no meu caso não é possível trabalhar com views porque mesmo que fizesse uma view eu preciso retornar uma lista para o resto da lógica.
Abaixo segue o método com o qual capturo a lista, tem algumas coisas especificas pq estou capturando a lista de um site de projeto do Project Server 2010, mas a lógica pra lista em si não muda, eu acho./// <summary>
/// reads the list to display
/// </summary>
/// <returns></returns>
public SPList GetListFromProjectWorkSpace()
{
SPList list = null;
Guid projUID = _helper.GetProjUID();
if (projUID == Guid.Empty)
{
return list;
}
// read project data
IProjectWssInfoDataSet dataset = _service.ReadWssData(projUID);
if (dataset.ProjWssInfo.Count == 0)
{
return list;
}
// get workspace name and url
string workspaceName = dataset.ProjWssInfo[0].WorkspaceName;
string workspaceUrl = dataset.ProjWssInfo[0].WorkspaceUrl;
SPSecurity.RunWithElevatedPrivileges(()=>
{
using (SPSite site = new SPSite(workspaceUrl))
{
for (int i = 0; i < site.AllWebs.Count; i++)
{
if (!site.AllWebs[i].ServerRelativeUrl.Contains(workspaceName))
{
continue;
}
try
{
list = site.AllWebs[i].Lists[SelectedList];
}
catch
{
}
}
SPQuery query = new SPQuery();
query.Query = @"<Where>
<Contains>
<FieldRef Name='LinkFilenameNoMenu' />
<Value Type='Computed'>work</Value>
</Contains>
</Where>";
SPListItemCollection itens = list.Items.List.GetItems(query);
// A partir daqui eu preciso de ajuda.
}
});
return list;
}
Obrigado,Eduardo Araújo
- Editado Eduardo Araújo quinta-feira, 30 de dezembro de 2010 12:46 assinatura
Todas as Respostas
-
Olá Eduardo,
Você conhece LINQ para o SP2010? Se não recomendo que analise a possibilidade de realizar esta atividade utilizando. Com ele você ganha em produtividade como o Interlicense.LINQ to SharePoint DSL Extension for Visual Studio 2010
http://code.msdn.microsoft.com/linq2spdsl/
Leandro Figueira“Caso esta resposta tenha ajudado a solucionar sua dúvida, favor clicar em “Marcar como Resposta” para beneficiar outros membros da comunidade que estejam lendo este thread”.
- Sugerido como Resposta Leandro Figueira quinta-feira, 30 de dezembro de 2010 13:34
-
Olá Leandro,
Conheço o Linq sim, mas apesar do intellissense ajudar muito, na prática, ele é um facilitador de consultas, por debaixo dos panos ele monta uma CAMQUERY. Meu ponto é que mesmo com ele eu não consigo instanciar um SPList direto com a query dele, do mesmo jeito que não estou conseguindo com a Camquery.
O problema todo é pegar esse SPListItemCollection e "jogar" em um SPList ou ja instanciar um SPList com esse filtro.
Obrigado,
Eduardo