GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[索引页]
[源码下载]


扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)


作者:webabcd


/*正式版的实现 开始*/

介绍
扩展GridView控件:
联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框为选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态

使用方法(设置CascadeCheckboxes集合属性):
ParentCheckboxID - 模板列中 父复选框ID
ChildCheckboxID - 模板列中 子复选框ID
YYControls.Helper.SmartGridView中的静态方法
List<DataKey> GetCheckedDataKey(GridView gv, int columnIndex)
List<DataKey> GetCheckedDataKey(GridView gv, string checkboxId)


关键代码
js

c#
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI.WebControls;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
namespace YYControls.SmartGridViewFunction

/*正式版的实现 结束*/


/*测试版的实现 开始*/

介绍
平时使用GridView的时候经常要给每行加一个复选框,然后还需要放置一个单独的全选复选框,通过单击它来让这些复选框全选或取消全选,每次实现这样的功能都要写一段javascript,麻烦,所以扩展它。


控件开发
1、新建一个继承自GridView的类。
}

2、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
namespace YYControls.SmartGridView

3、新建一个CheckboxAll类,有两个属性
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Collections.Generic;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Text;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.ComponentModel;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
namespace YYControls.SmartGridView

4、新建一个继承自CollectionBase的类CheckboxAlls
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System.Collections;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.ComponentModel;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
namespace YYControls.SmartGridView

5、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第4步创建的那个CheckboxAlls
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)        private CheckboxAlls _checkboxAlls;

6、声明一些内部属性
        }

7、声明几个私有变量

8、重写OnRowDataBound以给我们声明的那些私有变量赋值。

9、重写GridView的OnPreRender方法,以实现每行复选框的全选与取消全选的功能。


控件使用
添加这个控件到工具箱里,然后拖拽到webform上,在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,设置控件的CheckboxAlls属性即可。CheckboxAllID是模板列全选复选框ID;CheckboxItemID是模板列项复选框ID。
ObjData.cs
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)using System;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Data;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Configuration;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.Security;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI.WebControls;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI.WebControls.WebParts;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.Web.UI.HtmlControls;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
using System.ComponentModel;
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)

Default.aspx

/*测试版的实现 结束*/


OK
[源码下载]

相关文章: