Translate

miércoles, 9 de mayo de 2012

Creando vistas progrmaticamente en Sharepoint

Esta semana vamos a ver como crear vistas, sobre una lista en Sharepoint, desde visual studio.
Para el ejemplo vamos a suponer que la lista a manipular se encuentra ubicada en el sitio principal, y que la característica que vamos a activar, reside en el mismo lugar

1. El primer paso a realizar es obtener una referencia a la lista sobre la que queremos trabajar. Ubicando nuestro código en el fichero MainFeature.EventReceiver.cs.



SPList listaCambio = web.Lists["MILISTA"];

2.Una vez tenemos la lista, nos disponemos a crear la vista:

StringCollection fieldsInDefaultView = new StringCollection();

fieldsInDefaultView.Add("Concesion");
fieldsInDefaultView.Add("FechaInicio");
fieldsInDefaultView.Add("Solicitante");

string Query = @"<OrderBy><FieldRef Name='ID' /></OrderBy>
<Where><Eq><FieldRef Name='SolicitanteLookUp' /><Value Type='Text'>CIO</Value></Eq></Where>";

listaCambio.Views.Add(("Nombre de la vista", fieldsInDefaultView, Query, 100,true,false,SPViewCollection.SPViewType.Html,false);

Ejemplo de código completo para generar una vista desde la activación de una característica:


public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
   SPSite site = properties.Feature.Parent as SPSite;
   if (site != null)
   {
       using (SPWeb web = site.RootWeb)
       {
             SPList listaCambio = web.Lists["Milista"];
             StringCollection fieldsInDefaultView = new StringCollection();


             //Aqui van los campos que queremos mostrar en la vista
             fieldsInDefaultView.Add("Concesion");
             fieldsInDefaultView.Add("FechaInicio");
             fieldsInDefaultView.Add("Solicitante");


             //Filtros y ordenación de la vista
             string Query = @"<OrderBy><FieldRef Name='ID' /></OrderBy>
              <Where><Eq><FieldRef Name='SolicitanteLookUp' /><Value Type='Text'>APP</Value></Eq></Where>";


             //Añadimos la vista a la lista con un nombre personalizado

             listaCambio.Views.Add(( "Nombre de la vista", fieldsInDefaultView,Query, 100, true, false, SPViewCollection.SPViewType.Html, false);


       }               
    }
}


No hay comentarios:

Publicar un comentario