【问题标题】:asp.net VB gridview checkbox always show false on serverside code behindasp.net VB gridview 复选框总是在服务器端代码后面显示错误
【发布时间】:2012-07-06 09:57:23
【问题描述】:

我正在尝试在 asp.net (VB) 上实现一个带有复选框列的 gridview。当用户选中复选框并单击删除按钮时,它应该访问数据库并删除所有选中的项目。 我已经尝试了许多谷歌搜索解决方案,但从未为我工作过。这是简短的场景 在我的 aspx 页面上: 1)通过id文本框搜索,当用户输入ID并点击搜索按钮时,会显示下表

<asp:GridView ID="MyGridView" runat="server">
<Columns>
<asp:TemplateField headertext="Name">
<ItemTemplate>
<asp:Label id="namelbl" 
text='<%# Eval("name")%>' runat="server"/>
</ItemTemplate>   
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete Now?">
<ItemTemplate>
 <asp:CheckBox Enabled="true"   ID="chkStatus" runat="server" />

</ItemTemplate>      
</asp:TemplateField>
 </Columns>
 </asp:GridView>

数据显示后,用户勾选所需的复选框并单击删除按钮,然后运行后面的代码

Protected Sub DelSelected(ByVal sender As Object, ByVal e As System.EventArgs)
Dim idList as ArrayList = new ArrayList()
For Each row As GridViewRow In MyGridView.Rows
    Dim selectcb As CheckBox = CType(row.FindControl("chkStatus"), CheckBox)
     If (selectcb.Checked) Then
     'put into delete list

麻烦从这里开始,selectcb 复选框始终为 false 怎么会这样,任何想法都将不胜感激 谢谢

【问题讨论】:

    标签: asp.net vb.net visual-studio-2010


    【解决方案1】:

    只有在没有 IsPostback 时才必须绑定数据,以保持选中的复选框,并且不重置

    If(! IsPostBack)
    {
      Bind();
    }
    

    【讨论】:

    • 如果您调试站点并在多个页面事件处理程序方法上放置断点,这应该可以让您看到调用事件的顺序。
    • 嗯。对不起先生,我是asp.net和vb的新手,我的数据来自搜索框,它显示正确。你能详细说明一下吗?
    • 我已经阅读了几个关于 ispostback 和 checkbox 的解决方案,但我怎样才能确保该复选框仍然被选中。
    • Urr 没关系,非常感谢您的两个回答。我放了几个断点,我发现我正在绑定我的网格,即使它是回发。多谢。问题解决了
    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2013-10-10
    • 2012-12-19
    • 2017-02-18
    • 2013-10-03
    • 1970-01-01
    相关资源
    最近更新 更多