Estoy tratando de hacer un CPE dinámico en donde el ExpandControlID y CollapseControlID es un linkbutton. Para ello seteo el SuppressPostBack en true en el CPE y genero un AddHandler para el linkbutton.
Cuando el SuppressPostBack está en true no funciona el AddHandler y cuando esta en false funciona el AddHandler pero no hace lo que le pido.
En el Page_Load va
Código:
Dim ConsultaCargaPrincipal As VAConsultasSql = New VAConsultasSql() Dim DRCargaPrincipal As SqlDataReader Dim BD As String = 4 Dim SQL As String = "select * from Temp_Resumen_Factsheet" ConsultaCargaPrincipal.SqlString = SQL DRCargaPrincipal = ConsultaCargaPrincipal.EjecutaConsulta(BD) If DRCargaPrincipal.HasRows Then Dim tbl_datos As New Table() While DRCargaPrincipal.Read Dim tipores As Integer = DRCargaPrincipal.Item("tipores") If tipores = 0 Then 'Rescate de las variables que vienen de la consulta a la base de datos Dim cod_tipo_instrumento As String Dim tipo_instrumento As String Dim monto As String Dim porcentaje_cartera As String 'Rescate de los valores cod_tipo_instrumento = DRCargaPrincipal.Item("tipo") tipo_instrumento = DRCargaPrincipal.Item("nombre") monto = DRCargaPrincipal.Item("total") porcentaje_cartera = DRCargaPrincipal.Item("porcentaje") 'Creación de las variables de la tabla de datos. 'Esta tabla se incluirá en el panel "P_Contenido" Dim trow_cabecera As New TableRow() Dim trow_contenido As New TableRow() Dim tcell_cabecera_nombre As New TableCell() Dim tcell_cabecera_monto As New TableCell() Dim tcell_cabecera_porcentaje As New TableCell() Dim tcell_contenido As New TableCell() Dim lbt_cabecera_nombre As New LinkButton() Dim pnl_contenido As New Panel() 'Creación de la cabecera 'Asignación de los valores a las variables celdas lbt_cabecera_nombre.ID = "lbt_id_" & cod_tipo_instrumento lbt_cabecera_nombre.Text = tipo_instrumento form_factsheet.Controls.Add(lbt_cabecera_nombre) AddHandler lbt_cabecera_nombre.Click, AddressOf lbt_cabecera_nombre_Click tcell_cabecera_nombre.Controls.Add(lbt_cabecera_nombre) tcell_cabecera_monto.Text = monto tcell_cabecera_porcentaje.Text = porcentaje_cartera 'Unión de las celdas a la fila trow_cabecera.Cells.Add(tcell_cabecera_nombre) trow_cabecera.Cells.Add(tcell_cabecera_monto) trow_cabecera.Cells.Add(tcell_cabecera_porcentaje) 'Unión de la fila a la tabla tbl_datos.Rows.Add(trow_cabecera) Dim y As New Label() y.Text = ":)" pnl_contenido.Controls.Add(y) 'Creación del contenido pnl_contenido.ID = "pnl_contenido_" & cod_tipo_instrumento Global_pnl_contenido.ID = pnl_contenido.ID tcell_contenido.ColumnSpan = 3 tcell_contenido.Controls.Add(pnl_contenido) trow_contenido.Cells.Add(tcell_contenido) 'Unión de la fila a la tabla tbl_datos.Rows.Add(trow_contenido) Dim CPE = New CollapsiblePanelExtender() CPE.ID = "CPE_" & cod_tipo_instrumento CPE.ExpandControlID = "lbt_id_" & cod_tipo_instrumento CPE.CollapseControlID = "lbt_id_" & cod_tipo_instrumento CPE.TextLabelID = "lbt_id_" & cod_tipo_instrumento CPE.TargetControlID = "pnl_contenido_" & cod_tipo_instrumento CPE.Collapsed = True CPE.CollapsedText = tipo_instrumento CPE.ExpandedText = tipo_instrumento CPE.SuppressPostBack = True UP_Factsheet.ContentTemplateContainer.Controls.Add(CPE) Exit While 'Solo muestro el primer registro End If End While 'Conexión de la tabla al panel P_Contenido.Controls.Add(tbl_datos) End If
y la funcion que es llamada como AddHandler es
Código:
He probado varias combinaciones y no encuentro el error. Ya estoy pensando en no ocupar el Collapsible Panel Extender.Sub lbt_cabecera_nombre_Click(ByVal sender As System.Object, ByVal ByVale As System.EventArgs) Dim pnl As Panel = Page.FindControl("pnl_contenido_1") Dim x As Label = New Label() x.Text = "prueba" pnl.Controls.Add(x) End Sub
Alguien me puede ayudar. De antemano gracias por su ayuda.