AJAX Control Toolkit: Accordion dinamico con acceso a datos

En un WebDays me preguntaron: -como podría hacer que el contenido del control Accordion, del AJAX Control Toolkit, sea generado a partir del contenido de una base de datos?


Revisando el control Accordion, encontré algunas propiedades interesantes:



Al poseer una propiedad DataSourceID, nosotros vamos a poder asociar este control a cualquier control DataSource, como un control RSSDataSource, ObjectDataSource, SqlDataSource, entre otros. En este caso vamos a asociarlo a un control ObjectDataSource, que trae las 10 últimas noticias enviadas.


Este control posee dos templates, al estilo Repeater o DataList. Es decir que esos templates se repetirán para todos los elementos que retorne la fuente de datos. Para la cabecera tenemos HeaderTemplate, y para el contenido ContentTemplate.


Y al igual que un Repeater o DataList, podemos usar Eval, para invocar a una columna de los registros obtenidos.


Y con lo cual tendríamos un resultado como el siguiente:



Donde se aprecia que la noticia “NET Framework 3.0…” se esta ocultando y la otra “Removing Code Snippets…” esta apareciendo.


Happy conding :)!


Saludos,


Post cruzado 3Dev Blogs

13 comentarios en “AJAX Control Toolkit: Accordion dinamico con acceso a datos”

  1. Y que debo hacer si mi datasource lo obtengo programaticamente?

    Function obtenerRegistros() As DataSet

    End Function

    Dim ds As Data.DataSet = obtenerRegistros()
    acordion.DataSource = ds
    acordion.DataBind()

    El dataset me devuelve n registros (confirmado que me trae la informacion que necesito) sin embargo al ponerselo como datasource del acordion no me genera los panes necesarios (acordion.panes.count sigue siendo 0).

    Alguna idea?

  2. Tengo el siguiente eceneraio. Tego una tabla de categorias y contenidos (que seria el detalle), megustaria poder poner el los header el contenido de la tabla categorias y una vez que selecionaran alguna opcion poder ver dentro deñ contenido el detalle que estaria en la tabla contenidos… alguien sabe como hacerlo.. gracias

  3. El ultimo post parece que fuera una iocentada pèro yo estoy interesado tambien, en hacer un databind dependiendo del valor header
    viernes, 28 de diciembre de 2007 1:18 by Eduardo Hernandez

  4. A la pregunta: Y que debo hacer si mi datasource lo obtengo programaticamente?
    se aclara que se debe usar alguna vista del dataset o datatable es decir usar por ejemplo:

    Dim ds As Data.DataSet = obtenerRegistros()
    acordion.DataSource = ds.Tables(0).DefaultView()
    acordion.DataBind()
    
    


    Un poco tarde la respuesta , pero igual de vigente .. 😉 saludos!

    PD: No se por que estupida razón no soporta el dataset directo…

  5. Con respecto al DataSet, lo que pueden hacer es tener una clase que que tenga un método get y que retorne un dataSet, y eso enlazarlo con un ObjectDataSource.

    Eduardo Hernandez, lo puedes hacer usando un hiddenField y que este sea parámetro de los detalles, algo así (seudo-código):


    < %# Eval("Titulo") %>




    … contenido… detalle







    Algo así, se entiende la idea?

    Saludos,

  6. Hola, yo tengo el siguiente problema, yo cargo mi accordion por medio de un ObjectDataSource, pero a la hora de obtener un valor por medio del codebehind no puedo, me dice que el accordion.panes.count = 0.

    Si pudieras ayudarme, se lo agradecería.

  7. Hola a tod@s tengo un problema con el menú accordion de ajax, tengo creado dos tablas una consiste en el menú que se despliega, por ejemplo Planetas y otra tabla con los desplegable que contendría Tierra, Venus, Saturno, etc…(Los cuales quiero que se desplieguen al pulsar sobre el menú Planetas), el problema que tengo, es que no se como añadirlos de esta forma ya que de la que se expone si consigo hacerlo pero no se como añadirle más submenús. Si me podéis ayudar os lo agradecería mucho.

  8. ahhh casi me muero, tenia todo y no funcionaba, le mandaba un DataTable y nada y solo fue ponerle el “DefaultView” al DataTable y listo… haha gracias Darmin!!!

  9. Amigos soy nuevo usando estos controles ..
    Bueno quisiera saber si todo lo que explican de la base de datos se puede hacer pero por la parte del código no donde están mostrando ahora ??? espero me ayuden

  10. Está genial!!

    El único problema que tengo, no sé realmente porqué, no me carga los estilos cuando carga la página, si después pulso los header va cogiendo los estilos, pero de inicio no, ¿alguna idea?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *