读书人

gridview全选按钮的有关问题

发布时间: 2012-01-29 21:39:32 作者: rapoo

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 = "全选";
}

}
}
#endregion
------解决方案--------------------


用js来做吧,不然还得提交在回来用户体验不好,这种效果js做我感觉是最好的。

读书人网 >asp.net

热点推荐