如何使复选框在ASP.NET中工作

时间:2009-05-01 11:36:45

标签: asp.net vb.net checkbox

我正在使用在VB.NET 1.1框架中开发的旧Web应用程序。我遇到了复选框的问题。

我的复选框有以下代码:

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

这适用于我的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

这一切正常,直到我在asp代码和另一个oncheckchanged方法中添加另一个复选框,似乎它只是跳过查询。

有没有人有任何我错过的想法?

3 个答案:

答案 0 :(得分:1)

你的代码中有一个很大的NO-NO:它正在默默地控制异常并扔掉它。

在方法的某个地方存在某种异常,但是当你丢弃所有关于它的信息时,没有提示它出了什么问题。它可能是一些null的引用,但没有任何信息告诉你哪一个,很难发现问题。

删除此行,以免异常隐藏异常:

Catch ex As Exception

或者在它之后添加一些实际处理异常的代码。在这种情况下,您应该更改该行,以便您不会捕获基类Exception,而是捕获一些更具体的异常类,如SqlException

有关异常发生位置的一些信息,可以发现问题。

答案 1 :(得分:0)

您确定输入了Runat =“server”和AutoPostBack =“True”标签吗?

答案 2 :(得分:0)

可以肯定的是,问题中的代码中是否存在拼写错误?

oncheckchanged oncheckchange

-

你的意思是“我在asp代码中添加了另一个复选框和另一个oncheckchanged方法”?你真的创建了另一个处理程序吗?