Pergunta

Eu estou trabalhando com um aplicativo web antigo desenvolvido em VB.NET 1.1 quadro. Estou tendo um problema com caixas de seleção.

Eu tenho o seguinte código para a minha caixa de seleção:

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

e isso para o meu 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

Esta tudo bem funciona até que eu adicionar outra caixa de verificação no código asp e outro método oncheckchanged, parece que ele apenas salta sobre a consulta.

Alguém tem alguma idéia o que eu perdi?

Foi útil?

Solução

Você tem um grande não-não no código: é silenciosamente cathing uma exceção e jogá-la fora

.

Há algum tipo de algum lugar exceção no método, mas como você joga fora todas as informações sobre isso, não há nenhum indício para o que é que vai mal. É provavelmente algumas das referências que é nulo, mas sem qualquer informação que lhe diz que um, é difícil de detectar o problema.

Remova esta linha para que a exceção não é silenciosamente enterrado:

Catch ex As Exception

Como alternativa colocar algum código depois que realmente manipula a exceção. Nesse caso, você deve alterar a linha para que você não pegar o Exception classe base, mas alguns classe de exceção mais específica, como SqlException.

Com algumas informações sobre o local onde ocorre a exceção, é possível detectar o problema.

Outras dicas

Você garantir que você entrou no Runat = "server" e AutoPostBack = "true" tags?

Só para ter certeza, há um erro de digitação no seu código em apenas na questão?

oncheckchanged ou oncheckchange

-

Também o que você quer dizer com "eu adicionar outra caixa de verificação no código asp e outro método oncheckchanged "? Você realmente criar outro manipulador?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top