Pregunta

Estoy trabajando con una aplicación web antigua desarrollada en el marco VB.NET 1.1. Tengo un problema con las casillas de verificación.

Tengo el siguiente código para mi casilla de verificación:

<asp:TemplateColumn HeaderText="Reviewed">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemTemplate>
<asp:checkbox ID="chkAppRev" Runat="server" 
    OnCheckedChanged="onCheckChange" AutoPostBack="True" />  
</ItemTemplate>
</asp:TemplateColumn>

y esto para mi evento OnCheckChanged :

Public Sub onCheckChange(ByVal sender As Object, ByVal e As EventArgs)
    Dim strSQL As String = String.Empty
    Dim inbox As CheckBox = CType(sender, CheckBox)
    Dim dgItem As DataGridItem = CType(inbox.NamingContainer, DataGridItem)
    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConfigurationSettings.AppSettings("CONNECTIONSTRING"))
    Try
        '--update checkbox field on record in database
        conn.Open()
        If inbox.Checked = True Then
            strSQL = "Update AppUserJobs Set AppChecked=1 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
 " and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)



        Else
            strSQL = "Update AppUser Set AppChecked=0 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
" and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)
        End If

        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strSQL, conn)
        Dim intRec As Integer = cmd.ExecuteNonQuery()
        conn.Close()
    Catch ex As Exception
    Finally
        If (conn.State = ConnectionState.Open) Then
            conn.Close()
        End If
    End Try
    BindData()
End Sub

Todo esto funciona bien hasta que agrego otra casilla de verificación en el código asp y otro método oncheckchanged , parece que simplemente omite la consulta.

¿Alguien tiene alguna idea de lo que me perdí?

¿Fue útil?

Solución

Tienes un GRAN NO-NO en el código: está silenciosamente anulando una excepción y desechándola.

Hay algún tipo de excepción en algún lugar del método, pero a medida que descartas toda la información al respecto, no hay ningún indicio de qué es lo que no funciona. Es probable que algunas de las referencias sean nulas, pero sin ninguna información que le indique cuál es difícil de detectar el problema.

Elimine esta línea para que la excepción no se separe silenciosamente:

Catch ex As Exception

Alternativamente, coloca un código después de eso que realmente maneja la excepción. En ese caso, debe cambiar la línea para no capturar la clase base Exception sino una clase de excepción más específica como SqlException .

Con alguna información sobre dónde ocurre la excepción, es posible detectar el problema.

Otros consejos

¿Se aseguró de haber ingresado el Runat = " servidor " y AutoPostBack = " Verdadero " etiquetas?

Solo para estar seguro, ¿hay algún error tipográfico en su código en la pregunta?

oncheckchanged o oncheckchange

-

También a qué te refieres con " agrego otra casilla de verificación en el código asp y otro método oncheckchanged " ;? ¿Realmente creas otro manejador?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top