asp.net VB gridview复选框总是在后面的服务器端代码上显示false

时间:2012-07-06 09:57:24

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

我正在尝试使用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 怎么会发生这种情况,任何想法都会受到赞赏 感谢

1 个答案:

答案 0 :(得分:1)

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

If(! IsPostBack)
{
  Bind();
}