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