Usuario
Programa en VS - Recorrer Lista

Pregunta
-
Buen día... Quisiera que me puedan ayudar con el siguiente problema:
Tengo que hacer algun programita en visual que pueda recorrer dos listas que ya tengo creadas en un sitio de Sharepoint y en función de eso armar un string que pueda ser interpretado como texto HTML.
Páginas o sugerencias que puedan pasarme...
Muchas Gracias!!!
Todas las respuestas
-
Hola,
Para recorrer los elementos de una lista de SharePoint tienes las siguientes opciones:
- Si tu lógica reside en el servidor, usar la API de servidor...te vale para SharePoint 2007 y SharePoint 2010.
- Si tú lógicva reside fuera del servidor, usar o bien los Servicios Web (SharePoint 2007 y SharePoint 2010), o bien el modelo de objetos en cliente (SharePoint 2010) o la API REST (SharePoint 2010).
En cuanto a ejemplos de como conseguir este recorrido:
- API de servidor: http://www.a2zdotnet.com/View.aspx?Id=114
- Uso de técnicas combinadas para trabajar con elementos de lista: http://msdn.microsoft.com/en-us/library/dd490727(v=office.12).aspx
- Otro ejemplo más: http://share-useful-links.blogspot.com/2009/03/get-sharepoint-list-items.html
Entiendo que la generación del string de HTML ya la tienes controlada.
Saludos
------------------------------------------------------------
Juan Carlos González Martín MVP de SharePoint Server
Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Blog: http://geeks.ms/blogs/ciin
Twitter: @jcgm1978
------------------------------------------------------------- Propuesto como respuesta Santiago Porras RodríguezMVP, Moderator martes, 30 de agosto de 2011 23:11
-
Muchas Gracias!!! Estoy viendo esto q me pasaste.. Pude recorrer la lista en cierta forma. Lo que me gustaria saber es de que manera se puede acceder a las columnas que le defini desde Sharepoint, porque solo me aparecen las predeterminadas.. lo que yo quiero es tomar algo así:
Console
.WriteLine(item.Title.ToString()); (es a lo que pude acceder, Title)
Console
-
Hola,
Si estás trabajando con SharePoint 2010 utiliza LINQ To SharePoint para facilitarte realizar consultas y recorrer los resultados...en caso de que estés con SharePoint 2007 tienes que acceder a las propiedades en concreto usando: item["TuColumna"].
Un saludo
------------------------------------------------------------
Juan Carlos González Martín MVP de SharePoint Server
Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Blog: http://geeks.ms/blogs/ciin
Twitter: @jcgm1978
------------------------------------------------------------ -
Muchas Gracias Juan por tu pronta respuesta, quisiera pedirte si tienes info de LINQ To Sharepoint para pasarme.. Estuve leyendo un poco en internet de lo que pude ir encontrando y quisiera algún tutorial básico con algún ejemplo para copiar e ir probando y en base a eso poder armar lo que necesito.
Saludos
-
Hola,
Empieza con estos:
- http://geeks.ms/blogs/ciin/archive/2009/10/22/sharepoint-2010-trabajo-con-linq-to-sharepoint-i.aspx
- http://geeks.ms/blogs/ciin/archive/2009/11/09/sharepoint-2010-trabajo-con-linq-to-sharepoint-ii.aspx
Saludos
------------------------------------------------------------
Juan Carlos González Martín MVP de SharePoint Server
Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
Blog: http://geeks.ms/blogs/ciin
Twitter: @jcgm1978
------------------------------------------------------------ -
Hola!...
si no me equivoco ya debes tener algo asi al principio de tu función:using (SPSite site = new SPSite(ConfigurationManager.AppSettings["UrlSitio"])) { using (SPWeb web = site.OpenWeb(ConfigurationManager.AppSettings["adminsite"])) {...
para recorrer listas usas lo siguiente:foreach (SPList lista in web.Lists) {...
y dentro de esto puedes recorrer los campos con:foreach (SPField field in lista.Fields) {...
finalmente puedes intentar imprimir algunas de estas propiedades para que te guies:field.Type field.SourceId field.TypeDisplayName field.StaticName field.Title
creo que ya esto podria darte una mano....por otro lado, lo mas probable es que trates de acceder al valor de los campos que has creado, para ello previamente debes hacer una consulta con CAML. por ejemplo:
using (SPSite site = new SPSite(ConfigurationManager.AppSettings["UrlSitio"])) { using (SPWeb web = site.OpenWeb(ConfigurationManager.AppSettings["adminsite"])) { SPUser currentUser = web.CurrentUser; SPList oLista = web.Lists[ConfigurationManager.AppSettings["Calendar"]]; <strong>SPListItemCollection itemsCalendar = oLista.GetItems(<span style="text-decoration:underline">strQuery()</span>);</strong> web.AllowUnsafeUpdates = true; GridView2.DataSource = createDataTable(itemsCalendar); GridView2.DataBind(); } }
en esta linea:
SPListItemCollection itemsCalendar = oLista.GetItems(strQuery());
Precisamente en esta seccion:
strQuery()
Se encuetra la consulta CAML de la que te hablo.
te dejo esta por ejemplo:
private SPQuery strQuery() { if (!string.IsNullOrEmpty(Request.QueryString["dateEvent"].ToString())) { StringBuilder q = new StringBuilder(); q.Append("<Where>" + "<And>" + "<Leq>" + "<FieldRef Name=\"EventDate\" />" + "<Value IncludeTimeValue=\"TRUE\" Type=\"DateTime\">" + Request.QueryString["dateEvent"].ToString() + "T23:59:59Z" + "</Value>" + "</Leq>" + "<Geq>" + "<FieldRef Name=\"EventDate\" />" + "<Value IncludeTimeValue=\"TRUE\" Type=\"DateTime\">" + Request.QueryString["dateEvent"].ToString() + "T00:00:00Z" + "</Value>" + "</Geq>" + "</And>" + "</Where><OrderBy><FieldRef Name=\"EventDate\" Ascending=\"True\" /></OrderBy>"); SPQuery query = new SPQuery(); query.Query = q.ToString(); return query; } else { return null; } }
Espero te de una mano.
saludos.
-
Muchas gracias por las respuestas que me dieron...
Necesito hacer una query para consultar ciertos campos, lo que tengo q haces es recorrer una lista y tomar los elementos que cumplan una determinada condición para un campo.. Quisiera saber si alguien puede pasarme algo.. estuve siguiendo lo que me paso Avatar242 pero no se como hacer la query...
Saludos!