Cómo probar si la diseño de la página está en uso
-
10-12-2019 - |
Pregunta
He creado un módulo con algunos archivos que actualizo y eliminé a través de SPFeature.La cosa es que si un diseño de página está en uso, no puedo eliminarlo y lanza un error, incluso cuando está dentro de un intento {} catch {}.¿Cómo pruebo la (s) diseño (s) de página (s)?-C #
Solución
Para probar su lista de páginas en el evento desactivado de la función, debe poder consultar por diseño de página.Los siguientes devolverán cualquier página en la lista "Páginas" cuyo diseño de página contiene "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);
}
Otros consejos
Podría hacer el cheque realmente fácil en el navegador usando el Servicio Web de Box Listdata.svc.
Mostrar todas las páginas de la lista "Páginas" y sus diseños
<yoursiteUrl>/_vti_bin/listdata.svc/Pages?$select=Name,PageLayout
Muestra solo páginas de la lista "Páginas" usando BlankWebPartPage.aspx Layout
<yoursiteUrl>/_vti_bin/listdata.svc/Pages?$select=Name,PageLayout&$filter=substringof('BlankWebPartPage.aspx',%20PageLayout)%20eq%20true
NOTA: Si usa IE, querrá ver el XML sin procesar, no la vista de feed de RSS "Útil".Ir a las opciones de Internet -> Pestaña Contenido -> Configuración de fuentes y rodajes web -> Desmarque "Encienda la vista de lectura de alimentación"