在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)