lunes, 23 de marzo de 2009

Filtrado dinamico de DataSource en Sharepoint Designer

Tras buscar bastante en Internet con el objetivo de filtrar Datasources he encontrado este método que no es muy limpio que digamos pero que funciona, sin practicamente programar nada.

INGREDIENTES:
Vamos a necesitar un datasource y un control texbox (Puede estar oculto con style="display:none"), al cual le vamos a ajustar el valor recogido (por javascript) que queremos poner como filtro en el datasource, ajustándolo para que se filtre con un parámetro (ParameterBinding) el cual obtiene su valor del control textbox.

RESULTADO:
Podemos filtrar dinamicámente usando javascript el datasource.... esto da mucho juego, ya que podemos hacer linked combos, o mejor aun cascading Combos y un largo etc.... bueno cada uno que se las ingenie.
Hay muchos customfields de sharepoint que hacen esto pero no he consegido hacer cosas muy complejas, ya que no funcionan correctamente o peor aún , cuando crees que funciona y quieres cargar datos masivamente, empezamos a encontrarnos con sorpresas.

RECETA:
En el datasource, añadimos un parámetro al cual le ajustamos la propiedad Location para que recoja el valor del asp:TextBox y se filtren los resultados.

<ParameterBinding Name="HttpHost" Location="Control(MyHttpHost, Text)"
DefaultValue="" />

Y añadimos el siguiente código a la página.

<asp:TextBox ID="MyHttpHost" runat="server" Visible="false" /><script runat="server">protected void Page_Load(){ MyHttpHost.Text = SPContext.Current.Site.Url.Replace(SPContext.Current.Site.ServerRelativeUrl, ""); }</script>

Nota: Puedes encontrar mas artículos como este si buscas por "Control()"
Fuente: StackOverFlow


1 comentario:

  1. Hola Roberto, se que este no es el lugar donde deba preguntar esto, pero la verdad estoy estancado respecto a este tema, me gustaría que me dieras una base sobre como por medio de un cliente c#, pueda conectarme a una carpeta en un servidor sharepoint para que pueda ver online los documentos dentro de la carpeta, y así mismo, poder guardar nuevos documentos. Mi correo es: joseorozco_orozco@hotmail.com.

    Ojala puedas ayudarme.

    Gracias

    ResponderEliminar