Como testar se o layout da página está em uso
-
10-12-2019 - |
Pergunta
Eu criei um módulo com alguns arquivos que eu atualizar e eliminar através de spfeature.Uma coisa é se um layout de página está em uso, não posso apagá-lo e ele lança um erro, mesmo quando dentro de um try{ }catch{} .Como faço para testar o layout de página(s) a ser utilizado?-C#
Solução
Para testar a sua lista de páginas do Recurso desativado evento você deve ser capaz de consultar a página de layout.A seguir retornará todas as páginas em "Páginas" lista cujo layout de página contém "WebPartPage.aspx".
SPList spList = spWeb.Lists.TryGetList("Pages");
if (spList != null)
{
SPQuery qry = new SPQuery();
qry.Query =
@" <Where>
<Contains>
<FieldRef Name='PublishingPageLayout' />
<Value Type='URL'>WebPartPage.aspx</Value>
</Contains>
</Where>";
qry.ViewFields = @"<FieldRef Name='PublishingPageLayout' />";
SPListItemCollection listItems = spList.GetItems(qry);
}
Outras dicas
Você pode fazer o check-realmente fácil para a direita no navegador usando o a serviço da web listdata.svc.
Exibir todas as páginas do "Páginas" e da lista de seus layouts
<yoursiteUrl>/_vti_bin/listdata.svc/Pages?$select=Name,PageLayout
Exibir apenas páginas de "Páginas" lista usando BlankWebPartPage.aspx layout
<yoursiteUrl>/_vti_bin/listdata.svc/Pages?$select=Name,PageLayout&$filter=substringof('BlankWebPartPage.aspx',%20PageLayout)%20eq%20true
Nota:Se você usa o IE, você vai querer ver as matérias XML não o "útil" a exibição de feeds rss.Vá para Opções da Internet -> Conteúdo -> administração - > Feeds e Web Slices Configurações -> Desmarque a opção "Ativar o feed modo de exibição de leitura"