Datalist dentro de otro datalist

Marc
10 de Febrero del 2005
Buenas,

os cuento mi caso, creo que es un poco lioso, pero a ver si alguna mente inspirada me lo puede resolver, mis neuronas no dan para màs.



La idea en terminos generales és:

Un datalist1 que muestra un menu, con otro datalist2 dentro que muestra el submenu y con un linkbutton dentro del datalist2 para mostrar los items.



De momento, el datalist1 muestra el menu, y cuando selecciono un item, el datalist2 me carga los submenus. La dificultad estaba en generar el datalist2 dinamicamente, pero ya lo solucione. Ahora me falta poder controlar los eventos de los linkbuttons. (bueno, en realidad, por la regla de los controles contenedores serian eventos del datalist2, pero lo digo asi para que entiendan el caso...)

El codigo que he generado hasta ahora es:



[CODE]

...

AddHandler dl1.ItemCommand, AddressOf Abrir_Menu

AddHandler dl1.ItemDataBound, AddressOf Menu_ItemLlamado

AddHandler dl1.ItemCreated, AddressOf Menu_ItemCreado

...

PrivateSub Abrir_Menu(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlSeries.ItemCommand

dl1.DataSource = dv1

dl1.SelectedIndex = e.CommandArgument - 1

dl1.DataBind()

dl1.RepeatLayout = RepeatLayout.Table

EndSub


PrivateSub Menu_ItemLlamado(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)

If e.Item.ItemIndex <> -1 Then

Dim dl2 As DataList

dl2 = CType(e.Item.FindControl("dl2"), DataList)

IfNot dl2 IsNothingThen

dv2.RowFilter = "f_codi_serie =" & e.Item.ItemIndex + 1

dl2.DataSource = dv2

dl2.DataBind()

dl2.RepeatLayout = RepeatLayout.Table

EndIf

EndIf

EndSub


PrivateSub Menu_ItemCreado(ByVal sender AsObject, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)

If e.Item.ItemIndex <> -1 Then

Dim dl2 As DataList

dl2 = CType(e.Item.FindControl("dl2"), DataList)

IfNot dl2 IsNothingThen

AddHandler dl2.ItemCommand, AddressOf Abrir_Contenido

EndIf

EndIf

EndSub



PrivateSub Abrir_Contenido(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs)

Variable = "texto que quiero cargar"

EndSub

[/CODE]



Saludos a todos!! y a ver si alguien me puede ayudar pq ya me estoy volviendo majara!!

;)