GridView中加上CheckBox 的全选功能的代码
时间:2020-10-02 10:20:11|栏目:.NET代码|点击: 次
首先我????然是要先做出一??有?Y料的GridView
GridView做好後,我??在後方新增一???影?谖?(TemplateField)
?在新增的?影?谖恢械?HeaderTemplate加入一??CheckBox作?槿??x用,然後在ItemTemplate也加入一??CheckBox
复制代码 代码如下:
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckAll" runat="server" onclick= "SelectAllCheckboxes(this);" Text="全?x/取消" ToolTip="按一次全?x,再按一次取消全?x" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Text="全?x"/>
</ItemTemplate>
</asp:TemplateField>
接著?在??面的最底部加上以下的Java Script
复制代码 代码如下:
<script type="text/javascript">
function SelectAllCheckboxes(spanChk)
{
elm=document.forms[0];
for(i=0;i<elm.length;i++)
{
if(elm[i].type=="checkbox" && elm[i].id!=spanChk.id)
{
if(elm.elements[i].checked!=spanChk.checked)
elm.elements[i].click();
}
}
}
</script>
如果您的?面有套用MasterPage??⑸戏?JS放在</asp:Content>?嘶`上面,到?@?e就已?完成了全?x和取消全?x的功能了,您可以自行?y?看看,再?砦??要?u作修改的部份(你?不??做出全?x/取消的功能只是?使用者按好玩的吧), 接著在?面上放置一??按?o(Button),?Π粹o?c?上拢?切?Q到程式部份, 切?Q到程式部份後我??利用以下code去抓出哪些列(ROW)有被打勾
复制代码 代码如下:
int i;
for (i = 0; i < this.GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox2")).Checked)
{
Response.Write(GridView1.DataKeys[i].Value.ToString());
//GridView1.DataKeys[i].Value.ToString()可以抓到?列的DataKeys的值,我?O定的是pk值
}
}
如果您的GridVie?]有?O定 DataKeyNames="?Y料?谖?"那上方的code就列不出pk值唷
利用以上方式您就可以?蚀_的抓出哪些列有被使用者打勾,?碜髌渌?您要?绦械某淌搅?