日期:2014-05-18  浏览次数:20544 次

在GridView中使用CheckBox删除时试图状态丢失,万分火急!!
以上为部分代码: 在到了控件CheckBox但是它的checked属性总是为初始状态,后来我加了GridView的EnableViewState属性,可还是老样子。

  <asp:GridView ID="gvManageUser" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="id"
  ForeColor="#333333" GridLines="None" Width="950px" EnableViewState="true">
  <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
  <Columns>
  <asp:TemplateField HeaderText="删除">
  <ItemTemplate>
  <asp:CheckBox runat="server" ID="cbDel" Checked="false"/>
  </ItemTemplate>



  protected void btnDel_Click(object sender, EventArgs e)//利用CheckBox删除
  {
  for (int index = 0; index < gvManageUser.Rows.Count; index++)
  {
  if (((CheckBox)gvManageUser.Rows[index].Cells[0].FindControl("cbDel")).Checked == true)
  {
  SqlConnection conn = new SqlConnection(connStr);
  int itemID = Convert.ToInt32(gvManageUser.DataKeys[index].Value);
  string cmdStr = "Delete from tbUser where id=" + itemID.ToString();
  SqlCommand cmd = new SqlCommand(cmdStr, conn);
  conn.Open();
  cmd.ExecuteNonQuery();
  conn.Close();
  gvManageUser.DataBind();
  }
  }
  }



------解决方案--------------------
Page_Load中有没有绑定的代码?
------解决方案--------------------
page_load里的绑定代码加上if(!IsPostBack)判断
------解决方案--------------------
同楼上:
检查EnableViewState 和是否绑定在if(!IsPostBack)