GridView中加上CheckBox 的全选功能的代码

所属分类: 网络编程 / ASP.NET 阅读数: 771
收藏 0 赞 0 分享

首先我們當然是要先做出一個有資料的GridView
GridView做好後,我們在後方新增一個樣板欄位(TemplateField)
請在新增的樣板欄位中的HeaderTemplate加入一個CheckBox作為全選用,然後在ItemTemplate也加入一個CheckBox

复制代码 代码如下:

<asp:TemplateField>     
                    <HeaderTemplate>     
                        <asp:CheckBox ID="CheckAll" runat="server" onclick= "SelectAllCheckboxes(this);"  Text="全選/取消" ToolTip="按一次全選,再按一次取消全選" />     
                    </HeaderTemplate>     
                    <ItemTemplate>     
                        <asp:CheckBox ID="CheckBox2" runat="server" Text="全選"/>     
                    </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>標籤上面,到這裡就已經完成了全選和取消全選的功能了,您可以自行測試看看,再來我們要製作修改的部份(你總不會做出全選/取消的功能只是讓使用者按好玩的吧), 接著在頁面上放置一個按鈕(Button),對按鈕點兩下,切換到程式部份, 切換到程式部份後我們利用以下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的值,我設定的是pk值     
    }     
}

如果您的GridVie沒有設定 DataKeyNames="資料欄位"那上方的code就列不出pk值唷

利用以上方式您就可以準確的抓出哪些列有被使用者打勾,來作其他您要執行的程式了

更多精彩内容其他人还在看

ASP.NET 水晶报表打印功能实现代码

ASP.NET下的水晶报表打印,据我所知有以下几种办法可以打印
收藏 0 赞 0 分享

ASP.Net 图片存入数据库的实现代码

在很多时候,我们有这样的需求:把图片存入到数据库当中。在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户盗取,所以这些数据不能存放在文件系统中。
收藏 0 赞 0 分享

让Silverlight 2.0动画动起来Making Silverlight 2.0 animation Start(不能运动原因)

Microsoft Expression Blend 2 制作动画个人感觉倒像3DMAX 可以自动捕捉关键帧
收藏 0 赞 0 分享

asp.net Reporting Service在Web Application中的应用

由于我们这个项目中使用微软的报表服务(Reporting Services)作为报表输出工具,本人也对它进行一点点研究,虽没有入木三分,但这点知识至少可以在大部分Reporting Service的场景中应用。
收藏 0 赞 0 分享

C# 文件上传 默认最大为4M的解决方法

.net中默只能上传小于4m的文件,大于4M将无法显示页面.那么如何设置来使imputfile能上传更大的文件呢
收藏 0 赞 0 分享

asp.net 购物车实现详细代码

asp.net 购物车实现详细代码
收藏 0 赞 0 分享

asp.net repeater实现批量删除时注册多选框id到客户端

repeater批量删除时注册多选框id到客户端的实现代码
收藏 0 赞 0 分享

asp.net aspnetpager分页统计时与实际不符的解决办法

最近分页方面根据实际需要修改了一些函数
收藏 0 赞 0 分享

iis 服务器应用程序不可用的解决方法

访问页面时提示 服务器应用程序不可用,大家可以按照下面的方法重新注册下,应该能好点
收藏 0 赞 0 分享

asp.net button 绑定多个参数

asp.net button 绑定多个参数的代码
收藏 0 赞 0 分享
查看更多