gridview全选按钮的问题
[code=C#protected void allchck_CheckedChanged(object sender, EventArgs e)
{
foreach (GridViewRow gr in GV.Rows)
{
CheckBox ck=(CheckBox)gr.Cells[6].FindControl("itemchck");
if (!ck.Checked)
{
ck.Checked = true;
}
else
{
ck.Checked = false;
}
}
}][/code]
这个我判断了,gridview里的全选按钮,可是,我单个选择一个时,我在点击全选就会取反。而不是全部选中。怎么决绝呢
------解决方案--------------------**.aspx页面:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Width="373px" DataKeyNames="PackageID" Font-Names="宋体" Font-Size="9pt">
<Columns>
<asp:BoundField DataField="CompanyID" HeaderText="公司ID" />
<asp:BoundField DataField="ProductID" HeaderText="产品ID" />
<asp:BoundField DataField="PackageID" HeaderText="产品包ID" />
<asp:BoundField DataField="PackageName" HeaderText="产品名称" />
<asp:BoundField DataField="PackagePrice" HeaderText="价格" />
<asp:HyperLinkField DataNavigateUrlFields="ProductID,PackageID"
DataNavigateUrlFormatString="Products_MenuList.aspx?ProductID={0}&&PackageID={1}"
HeaderText="详细目录" Text="详细目录" Target="_blank" />
<asp:TemplateField FooterText="全选" HeaderText="选择">
<HeaderTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack="True" Text="全选" OnCheckedChanged="CheckAll" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" Font-Names="宋体" Font-Size="9pt" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
**.aspx.cs页面:
#region GridView全选/取消
protected void CheckAll(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
if (cb.Text == "全选")
{
foreach (GridViewRow gv in this.GridView1.Rows)
{
CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
cd.Checked = cb.Checked;
cb.Text = "取消";
}
}
else
{
cb.Text = "取消";
foreach (GridViewRow gv in this.GridView1.Rows)
{
CheckBox cd = (CheckBox)gv.FindControl("CheckBox1");
cd.Checked = cb.Checked;
cb.Text = "全选";
}