Como chegar caixas de seleção para trabalhar em ASP.NET
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?
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?