Tengo una casilla de verificación y un panel dentro de un control FormView, y necesito acceder a ellos desde el código subyacente para usar la casilla de verificación para determinar si el panel está o no visible. Este es el código que utilicé originalmente, pero desde que coloqué los controles dentro de FormView, ya no funciona.ASP.NET, VB: ¿cómo acceder a los controles dentro de un FormView desde el código subyacente?
Protected Sub checkGenEd_CheckedChanged(ByVal sender As Object, _
ByVal e As System.EventArgs)
If checkGenEd.Checked = True Then
panelOutcome.Visible = True
Else
panelOutcome.Visible = False
End If
End Sub
he empezado a resolver esto en base a otras preguntas que miraba para arriba en aquí, pero todos ellos eran en C# en lugar de VB, así que esto es por lo que yo tengo:
Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
If FormView1.CurrentMode = FormViewMode.Edit Then
End If
End Sub
Así que sí, no estoy seguro exactamente cómo terminarlo. Lo siento, esto podría ser bastante básico, pero soy nuevo en esto y cualquier ayuda sería apreciada.
EDIT: aquí está mi código ahora:
Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
If FormView1.CurrentMode = FormViewMode.Edit Then
CheckBox checkGenEd = formview1.FindControl("checkGenEd");
Panel panelOutcome = formview1.FindControl("panelOutcome");
End If
End Sub
También es mucho decir que checkGenEd y panelOutcome no se declaran.
EDIT: He cambiado mi código para esto, pero aún así no funciona:
Protected Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
If FormView1.CurrentMode = FormViewMode.Edit Then
Dim checkGenEd As CheckBox = FormView1.FindControl("checkGenEd")
Dim panelOutcome As Panel = FormView1.FindControl("panelOutcome")
If checkGenEd.Checked = True Then
panelOutcome.Visible = True
Else
panelOutcome.Visible = False
End If
End If
End Sub
No hay ningún error más, pero no pasa nada cuando hago clic en la casilla de verificación. Creo que debe haber algún tipo de evento para activarlo, pero no sé cómo se puede poner un controlador de eventos dentro de un controlador de eventos.
Bien, eso tiene sentido, pero ahora me dice que 'CheckBox' es un tipo y no se puede usar como una expresión. – Sara
Creo que normalmente es un error de sintaxis, ¿puedes publicar lo que tienes? También podría probar la sintaxis alternativa anterior ... –
Dim checkGenEd As CheckBox = CType (FormView1.FindControl ("checkGenEd"), CheckBox) para la conversión de vb equivalente. – Tom