Hola,
En mi caso estoy haciendo un datalist2 dentro de datalist1, hasta aqui con el codigo que comentasteis arriba m'he funciona pefectamente, el problema lo tengo con los eventos de los controles que tengo dentro del datalist2, por ejemplo los linkbuttons que genera cada iteracion. El caso es que el Handler no me acaba de funcionar:
mi codigo es:
ASPX::
Código HTML:
<asp:datalist id="dlSeries" Runat="server" RepeatDirection="Vertical">
<ItemTemplate>
<asp:LinkButton ID="lbserie" CommandName='Serie' CommandArgument='<%# Container.DataItem("codi_serie")%>' Runat="server"><%# Container.DataItem("nom")%></asp:LinkButton>
</ItemTemplate>
<SelectedItemTemplate>
<asp:Label ID="lserie" Runat="server" BORDERStyle="none"><%# Container.DataItem("nom")%></asp:Label>
<asp:datalist id="dlSerieMenu" Runat="server" RepeatDirection="Vertical">
<ItemTemplate>
<asp:LinkButton ID="lbSerieMenu" CommandName='SerieMenu' CommandArgument='<%# Container.DataItem("url_" & Session("idioma"))%>' Runat="server" BORDERStyle="none"><%# Container.DataItem("titol_" & Session("idioma"))%></asp:LinkButton>
</ItemTemplate>
<SelectedItemTemplate>
<asp:Label ID="lSerieMenu" Runat="server" BORDERStyle="none"><%# Container.DataItem("titol_" & Session("idioma"))%></asp:Label>
</SelectedItemTemplate>
</asp:DataList>
</SelectedItemTemplate>
</asp:datalist>
VB::
Código:
'FUNCION QUE AMPLIA LA SERIE SELECCIONADA
Private Sub Ampliar_Serie(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs)
dlSeries.DataSource = dvSeries
dlSeries.SelectedIndex = e.CommandArgument - 1
dlSeries.DataBind()
dlSeries.RepeatLayout = RepeatLayout.Table
End Sub
'FUNCION QUE MUESTRA EL MENU DE LA PRUEBA SELECCIONADA
Private Sub Ampliar_Serie_Menu(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
If e.Item.ItemIndex <> -1 Then
Dim dlSerieMenu As DataList
dlSerieMenu = CType(e.Item.FindControl("dlSerieMenu"), DataList)
If Not dlSerieMenu Is Nothing Then
'codi per al datalist anidat
dvSerieMenu.RowFilter = "f_codi_serie =" & e.Item.ItemIndex + 1
dlSerieMenu.DataSource = dvSerieMenu
'dlSerieMenu.SelectedIndex = e.CommandName - 1
dlSerieMenu.DataBind()
dlSerieMenu.RepeatLayout = RepeatLayout.Table
End If
End If
End Sub
Private Sub dlSerie_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlSeries.ItemCreated
If e.Item.ItemIndex <> -1 Then
Dim dlSerieMenu As DataList
dlSerieMenu = CType(e.Item.FindControl("dlSerieMenu"), DataList)
If Not dlSerieMenu Is Nothing Then
AddHandler dlSerieMenu.ItemCommand, AddressOf Obrir_SerieMenu
End If
End If
End Sub
Private Sub Obrir_SerieMenu(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs)
Dim Arxiu As System.IO.StreamReader
Dim liniaText As String
Dim ruta_prova As String
'Fem un Checking del arxiu que volem carregar pq en cas que no existeixi no peti
ruta_prova = ruta_server & "\bd\series\AR1\textos\maininfo_catala.html"
If Not File.Exists(ruta_prova) Then
Arxiu = File.OpenText(ruta_server & "\bd\error" & Session("idioma") & ".html")
Else
Arxiu = File.OpenText(ruta_server & "\bd\series\AR1\textos\maininfo_catala.html")
'Arxiu = File.OpenText(ruta_server & "\" & e.CommandArgument)
End If
Do
liniaText = Arxiu.ReadLine()
SerieMenu_text = SerieMenu_text & liniaText
Loop Until liniaText Is Nothing
Arxiu.Close()
'SerieMenu_text = "holaccccccccccccc"
End Sub
El problema esta en la ultima funcion que controla los eventos que ocurren dentro del datalist interior.
Si alguien puede hecharme un cable...
Gracias