在Asp.Net 2.0中新增的控件GridView可能是我们使用最普通的控件了,其用来显示数据的能力的确好用。GirdView内置有新增,修改,删除功能,结合ObjectDataSource控件,可以生成很好的三层体系的程序。但美中不足的就是其只支持单数据的操作,对于新增和修改而言倒还可以,但对于删除就不够了。我们往往希望能先选中我们要删除的记录,然后一次性删除,不仅方便而且提高了效率。
    为此,我们需要有能实现“全选/全不选”的CheckBox控件来配合GridView控件,以达到我们要实现的目的。
    “全选/全不选”的CheckBox控件程序代码如下:
 1实现GridView控件的删除多条记录功能系列(1)using System;
 2实现GridView控件的删除多条记录功能系列(1)using System.Collections.Specialized;
 3实现GridView控件的删除多条记录功能系列(1)using System.Web;
 4实现GridView控件的删除多条记录功能系列(1)using System.Web.UI;
 5实现GridView控件的删除多条记录功能系列(1)using System.Web.UI.WebControls;
 6实现GridView控件的删除多条记录功能系列(1)
 7实现GridView控件的删除多条记录功能系列(1)namespace HughLin.Web.UI.WebControls
 8实现GridView控件的删除多条记录功能系列(1){
 9实现GridView控件的删除多条记录功能系列(1)    /// <summary>
10实现GridView控件的删除多条记录功能系列(1)    /// 可全选/全不选复选框控件
11实现GridView控件的删除多条记录功能系列(1)    /// </summary>
12实现GridView控件的删除多条记录功能系列(1)    public class CheckBox : System.Web.UI.WebControls.CheckBox
13实现GridView控件的删除多条记录功能系列(1)    {
14实现GridView控件的删除多条记录功能系列(1)        public CheckBox()
15实现GridView控件的删除多条记录功能系列(1)        {
16实现GridView控件的删除多条记录功能系列(1)        }
17实现GridView控件的删除多条记录功能系列(1)
18实现GridView控件的删除多条记录功能系列(1)        /// <summary>
19实现GridView控件的删除多条记录功能系列(1)        /// 获取或设置被绑定的数据
20实现GridView控件的删除多条记录功能系列(1)        /// </summary>
21实现GridView控件的删除多条记录功能系列(1)        public string BindedValue
22实现GridView控件的删除多条记录功能系列(1)        {
23实现GridView控件的删除多条记录功能系列(1)            get
24实现GridView控件的删除多条记录功能系列(1)            {
25实现GridView控件的删除多条记录功能系列(1)                object obj1 = this.ViewState["BindedValue"];
26实现GridView控件的删除多条记录功能系列(1)                return (obj1 == null? string.Empty : (string)obj1;
27实现GridView控件的删除多条记录功能系列(1)            }
28实现GridView控件的删除多条记录功能系列(1)            set
29实现GridView控件的删除多条记录功能系列(1)            {
30实现GridView控件的删除多条记录功能系列(1)                if (!string.IsNullOrEmpty(value))
31实现GridView控件的删除多条记录功能系列(1)                {
32实现GridView控件的删除多条记录功能系列(1)                    this.ViewState["BindedValue"= value;
33实现GridView控件的删除多条记录功能系列(1)                }
34实现GridView控件的删除多条记录功能系列(1)            }
35实现GridView控件的删除多条记录功能系列(1)        }
36实现GridView控件的删除多条记录功能系列(1)
37实现GridView控件的删除多条记录功能系列(1)        /// <summary>
38实现GridView控件的删除多条记录功能系列(1)        /// 获取或设置控件所在的组名称
39实现GridView控件的删除多条记录功能系列(1)        /// </summary>
40实现GridView控件的删除多条记录功能系列(1)        public string Group
41实现GridView控件的删除多条记录功能系列(1)        {
42实现GridView控件的删除多条记录功能系列(1)            get
43实现GridView控件的删除多条记录功能系列(1)            {
44实现GridView控件的删除多条记录功能系列(1)                object obj1 = this.ViewState["Group"];
45实现GridView控件的删除多条记录功能系列(1)                return (obj1 == null? string.Empty : (string)obj1;
46实现GridView控件的删除多条记录功能系列(1)            }
47实现GridView控件的删除多条记录功能系列(1)            set
48实现GridView控件的删除多条记录功能系列(1)            {
49实现GridView控件的删除多条记录功能系列(1)                this.ViewState["Group"= value;
50实现GridView控件的删除多条记录功能系列(1)            }
51实现GridView控件的删除多条记录功能系列(1)        }
52实现GridView控件的删除多条记录功能系列(1)
53实现GridView控件的删除多条记录功能系列(1)        /// <summary>
54实现GridView控件的删除多条记录功能系列(1)        /// 获取或设置一个值,该值标识控件是否为父级别
55实现GridView控件的删除多条记录功能系列(1)        /// </summary>
56实现GridView控件的删除多条记录功能系列(1)        public bool IsParent
57实现GridView控件的删除多条记录功能系列(1)        {
58实现GridView控件的删除多条记录功能系列(1)            get
59实现GridView控件的删除多条记录功能系列(1)            {
60实现GridView控件的删除多条记录功能系列(1)                object obj1 = this.ViewState["IsParent"];
61实现GridView控件的删除多条记录功能系列(1)                return (obj1 == null? false : (bool)obj1;
62实现GridView控件的删除多条记录功能系列(1)            }
63实现GridView控件的删除多条记录功能系列(1)            set
64实现GridView控件的删除多条记录功能系列(1)            {
65实现GridView控件的删除多条记录功能系列(1)                this.ViewState["IsParent"= value;
66实现GridView控件的删除多条记录功能系列(1)            }
67实现GridView控件的删除多条记录功能系列(1)        }
68实现GridView控件的删除多条记录功能系列(1)
69实现GridView控件的删除多条记录功能系列(1)        protected override void OnPreRender(EventArgs e)
70实现GridView控件的删除多条记录功能系列(1)        {
71实现GridView控件的删除多条记录功能系列(1)            if (this.Visible && this.Enabled && !string.IsNullOrEmpty(this.Group))
72实现GridView控件的删除多条记录功能系列(1)            {
73实现GridView控件的删除多条记录功能系列(1)                if (!this.Page.ClientScript.IsClientScriptIncludeRegistered(typeof(CheckBox), "HughLin.CheckBox.js"))
74实现GridView控件的删除多条记录功能系列(1)                {
75实现GridView控件的删除多条记录功能系列(1)                    this.Page.ClientScript.RegisterClientScriptResource(typeof(CheckBox), "HughLin.CheckBox.js");
76实现GridView控件的删除多条记录功能系列(1)                }
77实现GridView控件的删除多条记录功能系列(1)                string text1 = "document.getElementById(\"" + this.ClientID + "\")";
78实现GridView控件的删除多条记录功能系列(1)                this.Page.ClientScript.RegisterArrayDeclaration(this.Group, text1);
79实现GridView控件的删除多条记录功能系列(1)            }
80实现GridView控件的删除多条记录功能系列(1)            base.OnPreRender(e);
81实现GridView控件的删除多条记录功能系列(1)        }
82实现GridView控件的删除多条记录功能系列(1)
83实现GridView控件的删除多条记录功能系列(1)        protected override void Render(HtmlTextWriter writer)
84实现GridView控件的删除多条记录功能系列(1)        {
85实现GridView控件的删除多条记录功能系列(1)            if (this.Enabled && this.Visible && !string.IsNullOrEmpty(this.Group))
86实现GridView控件的删除多条记录功能系列(1)            {
87实现GridView控件的删除多条记录功能系列(1)                if (!string.IsNullOrEmpty(this.BindedValue))
88实现GridView控件的删除多条记录功能系列(1)                {
89实现GridView控件的删除多条记录功能系列(1)                    writer.AddAttribute("value"this.BindedValue);
90实现GridView控件的删除多条记录功能系列(1)                }
91实现GridView控件的删除多条记录功能系列(1)                writer.AddAttribute("isparent"this.IsParent.ToString());
92实现GridView控件的删除多条记录功能系列(1)                writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "javascript:AspNetV2_Check(this, '" + this.Group + "');");
93实现GridView控件的删除多条记录功能系列(1)            }
94实现GridView控件的删除多条记录功能系列(1)            base.Render(writer);
95实现GridView控件的删除多条记录功能系列(1)        }
96实现GridView控件的删除多条记录功能系列(1)    }
97实现GridView控件的删除多条记录功能系列(1)}

    CheckBox.js文件代码如下:
  1实现GridView控件的删除多条记录功能系列(1)function AspNetV2_Check(item, group)
  2实现GridView控件的删除多条记录功能系列(1){
  3实现GridView控件的删除多条记录功能系列(1)    var itemIsParent = (item.isparent.toLowerCase() == "true"? true : false;
  4实现GridView控件的删除多条记录功能系列(1)    var itemChecked = item.checked;
  5实现GridView控件的删除多条记录功能系列(1)    var objArray;
  6实现GridView控件的删除多条记录功能系列(1)    try
  7实现GridView控件的删除多条记录功能系列(1)    {
  8实现GridView控件的删除多条记录功能系列(1)        objArray = eval(group);
  9实现GridView控件的删除多条记录功能系列(1)    }
 10实现GridView控件的删除多条记录功能系列(1)    catch (e)
 11实现GridView控件的删除多条记录功能系列(1)    {
 12实现GridView控件的删除多条记录功能系列(1)        return;
 13实现GridView控件的删除多条记录功能系列(1)    }
 14实现GridView控件的删除多条记录功能系列(1)    if (objArray == null || objArray.length == 0)
 15实现GridView控件的删除多条记录功能系列(1)    {
 16实现GridView控件的删除多条记录功能系列(1)        return;
 17实现GridView控件的删除多条记录功能系列(1)    }
 18实现GridView控件的删除多条记录功能系列(1)    if (itemIsParent)
 19实现GridView控件的删除多条记录功能系列(1)    {
 20实现GridView控件的删除多条记录功能系列(1)        AspNetV2_CheckAll(objArray, itemChecked);
 21实现GridView控件的删除多条记录功能系列(1)    }
 22实现GridView控件的删除多条记录功能系列(1)    else
 23实现GridView控件的删除多条记录功能系列(1)    {
 24实现GridView控件的删除多条记录功能系列(1)        AspNetV2_CheckIt(objArray, itemChecked);
 25实现GridView控件的删除多条记录功能系列(1)    }
 26实现GridView控件的删除多条记录功能系列(1)}
 27实现GridView控件的删除多条记录功能系列(1)
 28实现GridView控件的删除多条记录功能系列(1)function AspNetV2_CheckIt(newArray, itemChecked)
 29实现GridView控件的删除多条记录功能系列(1){
 30实现GridView控件的删除多条记录功能系列(1)    if (!itemChecked)
 31实现GridView控件的删除多条记录功能系列(1)    {
 32实现GridView控件的删除多条记录功能系列(1)        for (var i = 0; i < newArray.length; i++)
 33实现GridView控件的删除多条记录功能系列(1)        {
 34实现GridView控件的删除多条记录功能系列(1)            var e = newArray[i];
 35实现GridView控件的删除多条记录功能系列(1)            var isParent = (e.isparent.toLowerCase() == "true"? true : false;
 36实现GridView控件的删除多条记录功能系列(1)            if (isParent)
 37实现GridView控件的删除多条记录功能系列(1)            {
 38实现GridView控件的删除多条记录功能系列(1)                e.checked = false;
 39实现GridView控件的删除多条记录功能系列(1)            }
 40实现GridView控件的删除多条记录功能系列(1)        }
 41实现GridView控件的删除多条记录功能系列(1)    }
 42实现GridView控件的删除多条记录功能系列(1)    else
 43实现GridView控件的删除多条记录功能系列(1)    {
 44实现GridView控件的删除多条记录功能系列(1)        var objAll;
 45实现GridView控件的删除多条记录功能系列(1)        var allChecked = 0;
 46实现GridView控件的删除多条记录功能系列(1)        for (var i = 0; i < newArray.length; i++)
 47实现GridView控件的删除多条记录功能系列(1)        {
 48实现GridView控件的删除多条记录功能系列(1)            var e = newArray[i];
 49实现GridView控件的删除多条记录功能系列(1)            var isParent = (e.isparent.toLowerCase() == "true"? true : false;
 50实现GridView控件的删除多条记录功能系列(1)            if (e.checked && !isParent)
 51实现GridView控件的删除多条记录功能系列(1)            {
 52实现GridView控件的删除多条记录功能系列(1)                allChecked++;
 53实现GridView控件的删除多条记录功能系列(1)            }
 54实现GridView控件的删除多条记录功能系列(1)            else if (isParent)
 55实现GridView控件的删除多条记录功能系列(1)            {
 56实现GridView控件的删除多条记录功能系列(1)                objAll = e;
 57实现GridView控件的删除多条记录功能系列(1)            }
 58实现GridView控件的删除多条记录功能系列(1)        }
 59实现GridView控件的删除多条记录功能系列(1)        if (allChecked == newArray.length - 1)
 60实现GridView控件的删除多条记录功能系列(1)        {
 61实现GridView控件的删除多条记录功能系列(1)            objAll.checked = true;
 62实现GridView控件的删除多条记录功能系列(1)        }
 63实现GridView控件的删除多条记录功能系列(1)    }
 64实现GridView控件的删除多条记录功能系列(1)}
 65实现GridView控件的删除多条记录功能系列(1)
 66实现GridView控件的删除多条记录功能系列(1)function AspNetV2_CheckAll(newArray, itemChecked)
 67实现GridView控件的删除多条记录功能系列(1){
 68实现GridView控件的删除多条记录功能系列(1)    for (var i = 0; i < newArray.length; i++)
 69实现GridView控件的删除多条记录功能系列(1)    {
 70实现GridView控件的删除多条记录功能系列(1)        var e = newArray[i];
 71实现GridView控件的删除多条记录功能系列(1)        var isParent = (e.isparent.toLowerCase() == "true"? true : false;
 72实现GridView控件的删除多条记录功能系列(1)        if (!isParent)
 73实现GridView控件的删除多条记录功能系列(1)        {
 74实现GridView控件的删除多条记录功能系列(1)            if (e.checked != itemChecked)
 75实现GridView控件的删除多条记录功能系列(1)            {
 76实现GridView控件的删除多条记录功能系列(1)                e.checked = itemChecked;
 77实现GridView控件的删除多条记录功能系列(1)            }
 78实现GridView控件的删除多条记录功能系列(1)        }
 79实现GridView控件的删除多条记录功能系列(1)    }
 80实现GridView控件的删除多条记录功能系列(1)}
 81实现GridView控件的删除多条记录功能系列(1)
 82实现GridView控件的删除多条记录功能系列(1)function AspNetV2_CheckHasData(group)
 83实现GridView控件的删除多条记录功能系列(1){
 84实现GridView控件的删除多条记录功能系列(1)    var objArray;
 85实现GridView控件的删除多条记录功能系列(1)    var hasData = false;
 86实现GridView控件的删除多条记录功能系列(1)    try
 87实现GridView控件的删除多条记录功能系列(1)    {
 88实现GridView控件的删除多条记录功能系列(1)        objArray = eval(group);
 89实现GridView控件的删除多条记录功能系列(1)    }
 90实现GridView控件的删除多条记录功能系列(1)    catch (e)
 91实现GridView控件的删除多条记录功能系列(1)    {
 92实现GridView控件的删除多条记录功能系列(1)        return hasData;
 93实现GridView控件的删除多条记录功能系列(1)    }
 94实现GridView控件的删除多条记录功能系列(1)    if (objArray == null || objArray.length == 0)
 95实现GridView控件的删除多条记录功能系列(1)    {
 96实现GridView控件的删除多条记录功能系列(1)        return hasData;
 97实现GridView控件的删除多条记录功能系列(1)    }
 98实现GridView控件的删除多条记录功能系列(1)    for (var i = 0; i < objArray.length; i++)
 99实现GridView控件的删除多条记录功能系列(1)    {
100实现GridView控件的删除多条记录功能系列(1)        var e = objArray[i];
101实现GridView控件的删除多条记录功能系列(1)        if (e.checked)
102实现GridView控件的删除多条记录功能系列(1)        {
103实现GridView控件的删除多条记录功能系列(1)            hasData = true;
104实现GridView控件的删除多条记录功能系列(1)            break;
105实现GridView控件的删除多条记录功能系列(1)        }
106实现GridView控件的删除多条记录功能系列(1)    }
107实现GridView控件的删除多条记录功能系列(1)    return hasData;
108实现GridView控件的删除多条记录功能系列(1)}
    要使代码能够编译成功,必须在AssemblyInfo.cs文件中配置js文件的引用
    using System.Web.UI;
   [assembly: WebResource("HughLin.CheckBox.js", "application/x-javascript")]
   编译后生成 HughLin.dll
   下一篇将讲解如何使用该CheckBox控件实现删除GridView控件的多条记录

相关文章:

  • 2021-10-09
  • 2022-03-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2022-12-23
  • 2021-06-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
  • 2021-08-21
相关资源
相似解决方案