如何访问动态创建的复选框并确定已检查状态?

问题描述

我正在尝试访问页面上的3个复选框,这些复选框是根据PageLoad上的数据库信息动态创建的。 我可以在Web页面源中看到这些复选框,其ID等于T1,T2和T3。在查看页面时,将根据数据库表的值适当地选中或取消选中这些框。 我试图确定这些复选框的选中或未选中状态,然后单击按钮将其写入数据库。一切都很好。 我的问题是这些复选框/相关ID的实际“访问”。我已经进行了广泛的研究和尝试,但似乎没有任何效果。我确定我缺少一些细微差别。 这是我的代码(很抱歉缩进了):

        Dim RecCountT As Integer = TNotify.Rows.Count
    For i = 0 to RecCountT - 1
    Dim strsqlNotifyT as String = "UPDATE dbo._PinCodes  SET TextOnOff = @TextOnOff  WHERE EmployeeID = @EmployeeID"
    Dim myCommand as New sqlCommand(strsqlNotifyT,Conn)
    
    Dim CheckBoxID
    CheckBoxID = "T" & i
    
    If CheckBoxID.Checked = True Then
    myCommand.Parameters.AddWithValue("@TextOnOff","on")
    ElseIf CheckBoxID.Checked = False Then
    myCommand.Parameters.AddWithValue("@TextOnOff","off")
    End If
    
    myCommand.Parameters.AddWithValue("@EmployeeID",TNotify.Rows(i)("EmployeeID").ToString())
    Conn.open()
    myCommand.ExecuteNonQuery()
    Conn.Close()
    Next

解决方法

由于我看不到复选框创建代码,并且假设该复选框已成功创建并添加到Controls集合中,因此在创建CheckBox时,请添加:

yourCheckBox.ClientIDMode = ClientIDMode.Static

如果这不起作用,请使用更相关的代码来编辑您的帖子,以复制问题。