ene 12
25
Modificar la propiedad NoCrawl de un campo
Se me plantea la necesidad de modificar un atributo NoCrawl, de un campo de una lista creada en base a una plantilla de lista… es algo muy sencillo, aunque parezca un trabalenguas
El atributo NoCrawl a nivel de SPField, indica si dicho campo puede ser reastreado por el buscador (a través de un valor buleano: TrueFalse), aqui tienes toda la informacion con respecto a esta propiedad.
En este caso, lo que se quiere es que el buscador reastee contenido almacenado en un campo, que tiene el atributo NoCrawl = True. Cambiar esto a través del modelo de objetos es una labor muy sencilla, aqui teneis un ejemplo de como podriamos modificarlo.
using (SPWeb oWebsite = SPContext.Current.Site.AllWebs["MiSitio"])
{
SPList oList = oWebsite.GetList("Lists/Announcements/AllItems.aspx");
SPFieldCollection collFields = oList.Fields;
SPField oField = collFields.GetField("MiColumna");
oField.NoCrawl = true;
oField.Update();
oList.Update();
}
Hay que tener en cuenta, que si quieres modificar esta propiedad en varias listas de la misma coleccion de sitios, deberas primero recorer y almacenar cual van a ser las listas que has de modificar, y posteriormente modificarlas o de lo contrario SharePoint te dará un error, ya que se esta haciendo una llamada al metodo Update de la lista…
[Acerca de mi...]
[Facebook]
[Google+]
[LinkedIn]
[Tweeter]

Bing Webmaster
PowerShell Scripts for SharePoint