[索引页]
[源码下载]
扩展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的时候经常要给每行加一个复选框,然后还需要放置一个单独的全选复选框,通过单击它来让这些复选框全选或取消全选,每次实现这样的功能都要写一段javascript,麻烦,所以扩展它。
控件开发
1、新建一个继承自GridView的类。
2、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
3、新建一个CheckboxAll类,有两个属性
4、新建一个继承自CollectionBase的类CheckboxAlls
5、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第4步创建的那个CheckboxAlls
6、声明一些内部属性
7、声明几个私有变量
8、重写OnRowDataBound以给我们声明的那些私有变量赋值。
9、重写GridView的OnPreRender方法,以实现每行复选框的全选与取消全选的功能。
控件使用
添加这个控件到工具箱里,然后拖拽到webform上,在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,设置控件的CheckboxAlls属性即可。CheckboxAllID是模板列全选复选框ID;CheckboxItemID是模板列项复选框ID。
ObjData.cs
Default.aspx
/*测试版的实现 结束*/
OK
[源码下载]