【问题标题】:Not able to detect the CheckBox checked method in GridView无法在 GridView 中检测到 CheckBox 选中方法
【发布时间】:2013-11-23 12:52:31
【问题描述】:

我在 gridview 中添加复选框。我想从每一行中获取第三个单元格值。我正在使用按钮单击回发到 gridview 之外的服务器。 我的代码:

(ASPX 部分)

<asp:TemplateField HeaderStyle-Width="8px">
 <ItemTemplate >

                      <asp:CheckBox runat="server" ID="chkRow"/>
 </ItemTemplate>
 </asp:TemplateField>
'It is outside of the Gridview
<asp:Button ID="btnGetSelected" runat="server" Text="Get selected records"  OnClick ="GetSelectedRecords" />

(Vb.net部分)

Protected Sub GetSelectedRecords(sender As Object, e As EventArgs)
    Dim dt As New DataTable()
    Dim colSelRowKeys As New Collection
    colSelRowKeys.Clear()
    Dim s As String
    For Each row As GridViewRow In GridADFMain.Rows
 If (CType(row.FindControl("chkRow"), CheckBox)).Checked Then
            s = row.Cells(3).Text
            colSelRowKeys.Add(s)
 End If
    Next
    Session.Add("colSelRowKeys", colSelRowKeys)
End Sub

我无法输入 if checked 条件。

【问题讨论】:

  • 您的代码看起来不错,在我的测试中也可以正常工作。

标签: vb.net gridview checkbox


【解决方案1】:

您发布的代码在测试中运行良好。确保您没有在回发时重新绑定您的 Gridview。在重新绑定复选框中,值将被覆盖。检查您在哪里绑定了gridview,通常在Page_Load中,将代码包装在If Not IsPostBack中,如下所示:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        'Code to get data
        '    ..........            
        ' BindGridView()
        GridADFMain.DataBind()
    End If
End Sub

希望对你有帮助!

【讨论】:

  • 我在页面加载中绑定了gridADFMain。我可以查看数据。我的问题是,当我单击按钮时,单击事件也很好。但是,isChecked 不是工作。
  • 这不是关于绑定,而是关于重新绑定。当你点击按钮时,Page_Load 被触发,如果它没有If Not Page.IsPostBack,它将从复选框中删除 Checked。所以当GetSelectedRecords被执行时,checkbox是默认状态,不再勾选。
  • 如果您发布 Page_Load 方法,也许我们可以确定它是否可以。
  • 我现在没有代码。我将尝试您的上述评论并明天发布代码。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多