请高手帮帮忙调试半天,也不知道错在那里老是走到这里
CheckBox cbox = (CheckBox)GridView1.Rows[i].Cells[1].FindControl("CheckBox1");
if (cbox.Checked == true)
{
。。。。。。。。
}
为 false
前台代码
<body runat="server">
<form id="form1" runat="server">
<div id="divId" runat ="server">
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBox2_CheckedChanged" Text="全选" />
<asp:Button ID="shanchu" runat="server" Text="删除" OnClick="shanchu_Click" OnClientClick="return confirm('你确定要删除吗?')" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="导出exl" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" CssClass="gv"
DataKeyNames="UserName" GridLines="Horizontal" OnRowCommand="GridView1_RowCommand"
OnRowDeleting="GridView1_RowDeleting" Width="85%" OnRowDataBound="GridView1_RowDataBound">
<RowStyle BackColor="#E7E7FF" CssClass="gvitem" ForeColor="#4A3C8C" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<HeaderStyle BackColor="#4A3C8C" CssClass="gvheader" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingRowStyle BackColor="#F7F7F7" CssClass="gvalter" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UserName" HeaderText="用户名" />
<asp:BoundField DataField="RealName" HeaderText="真实名称" />
<asp:TemplateField HeaderText="用户性别" SortExpression="Six">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Six") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Six").ToString()=="0"?"男":"女"%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitName" HeaderText="单位名称" />
<asp:BoundField DataField="Addres" HeaderText="地址" />
<asp:BoundField DataField="OrgCode" HeaderText="组织结构代码" />
<asp:BoundField DataField="ZipCode" HeaderText="邮编" />
<asp:BoundField HeaderText="联系电话" DataField="PhoneName"/>
<asp:ButtonField CommandName="mod" HeaderText="详情" Text="详情" />
<%-- <asp:CommandField HeaderText="删除" ShowDeleteButton="True" />--%>
<asp:TemplateField HeaderText="删除 " ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandName="Delete" Text="删除" OnClientClick="return confirm('你确定要删除吗?')"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
未发现重复数据
</EmptyDataTemplate>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
</asp:GridView>
</div>
</form>
</body>
后台代码
protected void Button1_Click(object sender, EventArgs e)
{
bool Choose = false; //用于标记GridView中任意CheckBox控件是否被选中
bool Wrong = false; //用于标记删除GridView中某一行的数据时是否失败
string msg = ""; //用于记录当删除失败时存储的错误信息
//遍历GridView所有行
UserManger userManger = new UserManger(); ; //此为Bll层类,根据你的需要自行更改
for (int i = 0; i < this.GridView1.Rows.Count - 1; i++)
{
//如果某一行的CheckBox被选中,则执行删除操作
CheckBox cbox = (CheckBox)GridView1.Rows[i].Cells[1].FindControl("CheckBox1");
if (cbox.Checked == true)
{
Choose = true;
//获取要被删除的记录id
string userName = GridView1.DataKeys[i].Value.ToString();
int row = userManger.DeleteUser(userName); //调用bll删除的方法
if (row > 0) //请自行更改
{
Wrong = true;
msg = msg + "第" + (i + 1) + "行删除失败!";
continue;
}
}
}
//校验
if (Choose == false)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('没有任何选项被选中,无法删除!');</script>");
return;
}
if (Wrong == true)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('" + msg + "请联系管理员');</script>");
return;
}
GridView1.DataSourceID = "";
GridView1.DataSource = userManger.GetUsersAll(); // 自行更改
GridView1.DataBind();
}