扩展GridView控件(索引) - 增加多个常用功能

简介:
[最后更新:2008.03.28]
GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。
[源码下载(C#)]
[源码下载(VB)]  感谢 旌浪 提供VB版本  相关文章地址


扩展GridView控件(索引) - 增加多个常用功能


作者: webabcd
/*正式版的实现 开始*/
 
 
文章索引
扩展GridView控件(0) - 基本架构、增加事件和要点汇总
扩展GridView控件(1) - 鼠标经过行时改变行的样式
扩展GridView控件(2) - 复合排序和排序状态提示
扩展GridView控件(3) - 根据按钮的CommandName设置其客户端属性
扩展GridView控件(4) - 联动复选框(复选框的全选和取消全选)
扩展GridView控件(5) - 固定指定行、指定列
扩展GridView控件(6) - 响应行的单击事件和双击事件
扩展GridView控件(7) - 行的指定复选框选中时改变行的样式
扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
扩展GridView控件(9) - 给数据行增加右键菜单
扩展GridView控件(10) - 自定义分页样式
扩展GridView控件(11) - 合并指定列的相邻且内容相同的单元格
注:除了“固定指定行、指定列”仅支持IE外,其它均同时支持IE和FF


控件截图
 
控件使用
1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式
使用方法(设置属性):  
MouseOverCssClass - 鼠标经过行时行的 CSS 类名

2、对多个字段进行复合排序;升序、降序的排序状态提示
使用方法(设置SmartSorting复合属性): 
AllowSortTip - 是否启用排序提示 
AllowMultiSorting - 是否启用复合排序 
SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片) 
SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片) 
SortAscText - 升序提示文本 
SortDescText - 降序提示文本

3、根据按钮的CommandName设置其客户端属性
使用方法(设置ClientButtons集合属性): 
BoundCommandName - 需要绑定的CommandName 
AttributeKey - 属性的名称 
AttributeValue - 属性的值(两个占位符:{0} - CommandArgument;{1} - Text) 
Position - 属性的值的位置

4、联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态 
使用方法(设置CascadeCheckboxes集合属性): 
ParentCheckboxID - 模板列中 父复选框ID 
ChildCheckboxID - 模板列中 子复选框ID 
YYControls.Helper.SmartGridView中的静态方法 
List  GetCheckedDataKey(GridView gv, int columnIndex) 
List  GetCheckedDataKey(GridView gv, string checkboxId)

5、固定指定行、指定列,根据RowType固定行,根据RowState固定行 
使用方法(设置FixRowColumn复合属性): 
FixRowType - 需要固定的行的RowType(用逗号“,”分隔) 
FixRowState - 需要固定的行的RowState(用逗号“,”分隔) 
FixRows - 需要固定的行的索引(用逗号“,”分隔) 
FixColumns - 需要固定的列的索引(用逗号“,”分隔) 
TableWidth - 表格的宽度 
TableHeight - 表格的高度

6、响应行的单击事件和双击事件,并在服务端处理 
使用方法(设置属性): 
BoundRowClickCommandName - 行的单击事件需要绑定的CommandName 
BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName

7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式 
使用方法(设置CheckedRowCssClass复合属性): 
CheckBoxID - 模板列中 数据行的复选框ID 
CssClass - 选中的行的 CSS 类名

8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet) 
使用方法: 
为SmartGridView添加的方法
Export(string fileName)
Export(string fileName, ExportFormat exportFormat)
Export(string fileName, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, string[] columnNameList, string[] headers, ExportFormat exportFormat, Encoding encoding)


9、给数据行增加右键菜单,响应服务端事件或超级链接 
使用方法(设置ContextMenus集合属性): 
Text - 菜单的文本内容 
BoundCommandName - 需要绑定的CommandName 
NavigateUrl - 链接的URL 
Target - 链接的目标窗口或框架 
SmartGridView的属性ContextMenuCssClass - 右键菜单的级联样式表 CSS 类名(右键菜单的结构div ul li a)

10、自定义分页样式。显示总记录数、每页记录数、当前页数、总页数、首页、上一页、下一页、末页和分页按钮 
使用方法(设置CustomPagerSettings复合属性): 
PagingMode - 自定义分页的显示模式 
TextFormat - 自定义分页的文本显示样式(四个占位符:{0}-每页显示记录数;{1}-总记录数;{2}-当前页数;{3}-总页数)

11、合并指定列的相邻且内容相同的单元格
使用方法(设置属性):
MergeCells -  需要合并单元格的列的索引(用逗号“,”分隔)
/*正式版的实现 结束*/
 
/*测试版的实现 开始*/
 
 
控件使用
1、鼠标经过行时改变行的样式
CssClassMouseOver - 鼠标经过行时行的样式的CSS类名

2、给字段标题加上排序状态
设置其SortTip下的4个属性即可
SortAscImage - 升序提示图片
SortAscText - 升序提示文本
SortDescImage - 降序提示图片
SortDescText - 降序提示文本

3、单击命令按钮弹出确认框
设置其ConfirmButtons属性
CommandName - 命令按钮的CommandName属性
ConfirmMessage - 弹出的确认框所显示的文字

4、每行复选框的全选与取消全选
在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性
CheckboxAllID - 模板列全选复选框ID
CheckboxItemID - 模板列项复选框ID

5、固定表头、指定行或指定列
设置其FixRowCol下的6个属性
IsFixHeader - 固定表头否?
IsFixPager - 固定分页行否?
FixRowIndices - 需要固定的行的索引(用逗号“,”分隔)
FixColumnIndices - 需要固定的列的索引(用逗号“,”分隔)
TableWidth - 表格的宽度
TableHeight - 表格的高度
EnableScrollState - 是否保持滚动条的状态

6、数据行响应鼠标的单击和双击事件
RowClickButtonID - 行单击事件所对应的按钮的ID
RowDoubleClickButtonID - 行双击事件所对应的按钮的ID

7、改变通过CheckBox选中的行的样式
CheckBoxID - 模板列的项复选框的ID
CssClassRowSelected - 选中行的样式的CSS类名

8、导出为Excel
在GridView内加一个按钮
CommandName属性设置为“ExportToExcel”
CommandArgument属性的值用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的列的索引(列索引用“,”分开)

9、给数据行增加右键菜单
ItemType - 右键菜单的项的类别(Link,Command,Custom,Separator)
Icon - 文字左边的图标的链接
Text - 菜单的文字
CommandButtonId - 所调用的命令按钮的ID
NavigateUrl - 链接的url
Target - 链接的target(Blank,Self,Top)
Key - 自定义属性key
Value - 自定义属性value

10、扩展分页功能
设置PagingStyle属性为Default
设置GridView的原有属性PageButtonCount,FirstPageText,PreviousPageText,NextPageText,LastPageText,FirstPageImageUrl,PreviousPageImageUrl,NextPageImageUrl,LastPageImageUrl
/*测试版的实现 结束*/
 
 





     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/345429,如需转载请自行联系原作者


相关文章
|
3月前
|
存储 开发框架 前端开发
在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
在Winform分页控件中集成保存用户列表显示字段及宽度调整设置
|
3月前
|
开发框架 缓存 前端开发
使用扩展函数方式,在Winform界面中快捷的绑定树形列表TreeList控件和TreeListLookUpEdit控件
使用扩展函数方式,在Winform界面中快捷的绑定树形列表TreeList控件和TreeListLookUpEdit控件
gridControl在同一列的不同行创建不同的控件(已CheckEidt搭配ButtonEdit为例)
gridControl在同一列的不同行创建不同的控件(已CheckEidt搭配ButtonEdit为例)
|
Android开发
Android开发 ListView(垂直滚动列表项视图)的简单使用
Android开发 ListView(垂直滚动列表项视图)的简单使用
350 0
Android开发 ListView(垂直滚动列表项视图)的简单使用
Xamarin使用ListView开启分组视图Cell数据展示bug处理
问题描述 Xamarin使用IsGroupingEnabled="true"之后再Cell操作就会出现数据展示bug,数据不刷新的问题,如下图所示: 点击取消的是其他钢厂,但ViewCell展示的一直是“长峰”,这就分组试图一个比较常见的bug。
1118 2
|
算法 数据库 内存技术
【视频】自然框架之分页控件的使用方法(一) PostBack方式的一般分页方式
前言:分页控件的优点   1、 按需所取 —— 需要几条记录就从数据库里提取几条记录,不会多取。 2、 使用简单 —— 设置几个属性就可以实现分页的功能。 3、 多种分页算法 —— (即分页用的SQL语句)可以根据不同的需求灵活选择 4、 支持多种数据库 —— 用不同的分页算法对应不同的数据库。
1113 0