Estimados,
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:
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
He probado varias combinaciones y no encuentro el error. Ya estoy pensando en no ocupar el Collapsible Panel Extender.
Alguien me puede ayudar. De antemano gracias por su ayuda.