- 浏览: 70366 次
- 性别:
- 来自: 厦门
最新评论
-
BlueBing:
linyuliang 写道BlueBing 写道我想再做些修改 ...
IBatis Abator去除注释版 -
linyuliang:
BlueBing 写道我想再做些修改 可否提供下源码呢晚上我回 ...
IBatis Abator去除注释版 -
linyuliang:
xiaohu7924 写道为什么我用这个生成的名字不是你说的驼 ...
IBatis Abator去除注释版 -
xiaohu7924:
为什么我用这个生成的名字不是你说的驼锋名字,还是老样子
IBatis Abator去除注释版 -
BlueBing:
我想再做些修改 可否提供下源码呢
IBatis Abator去除注释版
在Asp.Net 2.0中新增的控件GridView可能是我们使用最普通的控件了,其用来显示数据的能力的确好用。GirdView内置有新增,修改,删除功能,结合ObjectDataSource控件,可以生成很好的三层体系的程序。但美中不足的就是其只支持单数据的操作,对于新增和修改而言倒还可以,但对于删除就不够了。我们往往希望能先选中我们要删除的记录,然后一次性删除,不仅方便而且提高了效率。
为此,我们需要有能实现“全选/全不选”的CheckBox控件来配合GridView控件,以达到我们要实现的目的。
“全选/全不选”的CheckBox控件程序代码如下:
CheckBox.js文件代码如下:
为此,我们需要有能实现“全选/全不选”的CheckBox控件来配合GridView控件,以达到我们要实现的目的。
“全选/全不选”的CheckBox控件程序代码如下:
1using System;
2using System.Collections.Specialized;
3using System.Web;
4using System.Web.UI;
5using System.Web.UI.WebControls;
6
7namespace 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}
2using System.Collections.Specialized;
3using System.Web;
4using System.Web.UI;
5using System.Web.UI.WebControls;
6
7namespace 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文件代码如下:
1function 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
28function 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
66function 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
82function 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
28function 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
66function 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
82function 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
发表评论
-
实现GridView控件的删除多条记录功能系列(2)
2005-08-10 14:55 1193在上一篇中,我们已经开发了需要的CheckBox控件, ... -
实现GridView控件的删除多条记录功能系列(3)
2005-08-11 12:18 1251本篇将讲述如何解决GridView控件中使用Check ... -
[转]C#正则表达式小结
2007-09-24 11:38 1138地址: http://www.cnblogs.co ... -
[转]全面剖析C#正则表达式
2007-09-24 11:41 1317地址:http://fineboy.cnblogs.com/ ... -
(转贴)VS.NET下水晶报表分发时的问题及解决
2007-10-18 17:27 1115一、载入报表时报错 ... -
(转贴)图解使用VS.NET部署含水晶报表的网站
2007-10-18 17:56 2017Crystal Report ,中文名称“水晶报表”,因为做报 ... -
[转]VS2005 web程序自定义安装包的制作
2007-10-23 10:28 2062利用VS2005的“Web安装项目”建立安装包很难对安装过程进 ... -
[转]使用C#进行点对点通讯和文件传输(通讯基类部分)
2007-10-24 10:59 857最近一个项目要用到点对点文件传输,俺就到处找资料写程序,最后终 ... -
[转]使用C#进行点对点通讯和文件传输(发送接收部分)
2007-10-24 11:00 1549上面介绍了通讯的基类,下面就是使用那个类进行发送和接收的部分: ... -
[转载]C#中串口通信编程
2007-10-24 11:01 4412原文及源代码位置:http://bbs.msproject.c ... -
[转]C#多线程编程实例实战
2007-10-24 11:02 1594单个写入程序/多个阅读程序在.Net类库中其实已经提供了实现, ... -
[转]实现同时只允许运行一个程序实例
2007-10-24 11:06 1065方法一: /// <summary> /// 从这 ... -
[转]IIS虚拟目录控制类
2007-10-24 11:08 423using System;using System.Data; ... -
[转]C# 调用API,实现注销远程登录本机的用户
2007-10-24 11:08 1739using System;using System.Manag ... -
[转]C#的usb通讯编程
2007-10-24 11:10 2712using System;using System.Colle ... -
[转]IIS站点管理类
2007-10-24 11:10 873using System;using System.Colle ... -
[转]使用.NET实现断点续传
2007-10-24 11:11 1233断点续传的原理 在了解HTTP断点续传的原理之前,先来说说HT ... -
[转]Datagridview 实现二维表头
2007-10-26 16:42 2290最近把我们的b/s系统,增加智能客户端的功能。确实智能客户端是 ... -
[转]Web项目下NHibernate的Session管理的解决方案
2007-11-07 10:47 3351NHibernate的Session的管理一直是个问题,在系统 ... -
[转] NHibernate对像版本控制使用示例
2007-11-07 10:49 1191<version name="Version& ...
相关推荐
一、表头表尾 1、自定义多行表头,列合并,行合并 2、删除表身指定列、行 3、固定表头,向下拉动滚动条时,表头固定不动 4、表脚行统计,总计、平均值 二、导入导出 ...根据主键多条记录删除,单条记录删除。
知识准备 GridView控件 GridView控件支持下面的功能: 内置行选择功能。 以编程方式访问 GridView 对象模型以动态设置属性、处理事件等。 多个键字段。 用于超链接列的多个数据字段。 可通过主题和样式进行自定义的...
同理,当用户需要同时删除多条记录时,该技术也很有用. 如果你使用过邮件系统的话,你应该对这种最常见的批删除界面很熟悉:界面里每一行都包含一个checkbox,此外,还有一个“Delete All Checked Items”按钮(如...
7.3.8 同时更新多条记录 7.3.9 根据条件删除记录 7.4 存储过程 7.4.1 使用存储过程添加数据 7.4.2 使用存储过程查询数据 7.4.3 使用存储过程更新数据 7.4.4 使用存储过程删除数据 7.4.5 存储过程与输出参数 ...
使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 ...
使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 ...
使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 ...
当使用GridView、DetailsView或FormView控件的内建插入、编辑或删除特征时,在用户添加一条新记录或更新/删除一条现在记录的过程中发生了多个步骤。正如我们之前一节里所讨论的,在GridView中编辑一行时,保存...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
5.17.1 表单验证控件(RequiredFieldValidator) 5.17.2 比较验证控件(CompareValidator) 5.17.3 范围验证控件(RangeValidator) 5.17.4 正则验证控件(RegularExpressionValidator) 5.17.5 自定义逻辑验证控件...
100 <br>0158 如何将二进制数转换为十六进制数 100 <br>0159 如何实现0~9之间随机整数 101 <br>0160 如何实现0~1之间随机数 101 <br>0161 如何返回数字的绝对值 101 <br>5.2 控件数据处理...
App_Code\ People.cs 实现记录个人基本信息的自定义控件。 App_Code\ Name.cs Name属性的自定义状态管理类。 第9章(\Chapter 09) 示例描述:本章学习母版页。 MasterPage.master 一个简单的母版页。 9-01....
如何解决ACCESS中SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using...
当使用GridView、DetailsView或FormView控件的内建插入、编辑或删除特征时,在用户添加一条新记录或更新/删除一条现在记录的过程中发生了多个步骤。正如我们之前一节里所讨论的,在GridView中编辑一行时,保存...
在没有任何并发策略的地方,当两个用户同时编辑某一条记录,最后提交的用户的更改将覆盖先提交的用户所作的更改。 例如,假设两个用户,Jisun和Sam,都访问我们的应用软件中的一个页面,这个页面允许访问者通过一...