GridView中加上CheckBox 的全选功能的代码_实用技巧

首先我們當然是要先做出一個有資料的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值唷

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

时间: 2024-11-02 15:09:55

GridView中加上CheckBox 的全选功能的代码_实用技巧的相关文章

asp.net 自制的单选、多选列表实现代码_实用技巧

问:为什么要"自制"?不是有现成的控件吗? 答:在ASP.NET的页面上,ListBox最终是渲染成select元素,而CheckListBox最终被渲染成div或者是table,使得二者的样式无法统一,或者说要统一很麻烦. 解决: 于是,决定干脆自行组合一些元素,实现单选列表.多选列表的统一样式. 首先,无论是单选列表还是多选列表,都用一个有边框的div来做容器: <div class="list"></div> 然后,在这个div中添加数

MVC4制作网站教程第二章 部分用户功能实现代码_实用技巧

用户部分要实现的功能有: 序 一.用户  1.1用户注册  1.2用户登录  1.3修改密码  1.4修改资料 要实现这些目的首先新建用户(Model)模型 /// <summary> /// 用户模型 /// </summary> public class User { [Key] public int UserId { get; set; } /// <summary> /// 用户组Id /// </summary> [Display(Name=&qu

DataGridView中绑定DataTable数据及相关操作实现代码_实用技巧

复制代码 代码如下: DataTable DT = new DataTable(); DT.Columns.Add("Name"); DT.Columns.Add("Sex"); DataRow dr = DT.NewRow(); dr[0] = "Kenny"; dr[1] = "男"; DT.Rows.Add(dr); A:在DataGridView控件的列编辑中将DataPropertyName属性设为DataTable

.NET WinFrom中给文本框添加拖放事件的代码_实用技巧

在开发.NET WinForm程序时,有时候我们希望窗体上的文本框能接受鼠标拖放事件,比如允许将文件直接拖放到文本框中以直接获取到文件的本地路径,或者将选取的字符串直接拖放到文本框中等等.要实现这个功能其实很简单,代码如下. 1. 将文本框的属性AllowDrop设置成True 2. 给文本框添加DragEnter事件 复制代码 代码如下: private void textBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.G

MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧

序 一.用户 二.用户组 三.栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 3.4删除栏目 3.5前台栏目浏览 -- 栏目模型: 模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序.暂时先想到这么多,先这这么写着.  栏目名称和父栏目id不用说很简单.  栏目类型有三种:普通栏目-就是一般的栏目:单页栏目--是指栏目就是一个页面,像公司介绍,联系地址等:外部链接-是指栏目点一下就跳转到一个链接.  内容模型--是指栏目为普通栏目时,栏目的内

ASP.NET 水晶报表打印功能实现代码_实用技巧

1.用IE的打印,调用window.print(),但这种办法对于页面上即有报表,又有其它控件情况就无法区分,不能达到只打印报表内容的目的: 2.自已写打印代码 代码如下: 复制代码 代码如下: CrystalDecisions.CrystalReports.Engine.ReportDocument rd=new CrystalDecisions.CrystalReports.Engine.ReportDocument(); rd.Load(Server.MapPath("Crystalrep

ASP.NET中实现jQuery Validation-Engine的Ajax验证实现代码_实用技巧

见下图: 验证的例子:http://www.position-relative.net/creation/formValidator/ 官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 这个插件支持大部分的浏览器,但由于有使用到了css3的阴影和圆角样式,所以在IE浏览器下无法看到圆角和阴影效果(IE 9 支持圆角效果). 本文主要内容是

Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码_实用技巧

动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段),这样设置GridView固定宽度就不能满足需求了.为此整理了两种方法来达到GridView自适应列宽不变形的效果. .aspx.cs 复制代码 代码如下: //在GridView的行数据绑定完的事件中设置 protected void gvObjectList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType

xls表格导入数据库功能实例代码_实用技巧

复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e)        {             if (FileUpload1.HasFile == false)            {                Page.ClientScript.RegisterStartupScript(this.GetType(), "shifou", "<script>alert('请