【转】ASP.NET 数据分页第三篇 - 结合 Custom Control 处理 GridView 的 UI 呈现
2012-11-02 15:38
429 查看
延续本系列前两篇帖子「ASP.NET 数据分页第一篇 - 探讨分页原理及 SQL Server 2005 的 ROW_NUMBER 函数」、「ASP.NET 数据分页第二篇 - 范例下载」,本系列的第三篇帖子,同样是处理 GridView 的「分页」的问题,但前两篇是处理数据库的数据撷取问题,本篇是处理 GridView 前端 UI 呈现的问题。
本帖的重点,是版工我自己写了一个 Custom Control 的 GridView,名为 WizardGridView,其直接继承自微软 ASP.NET 2.0 原生的 GridView 控件,执行画面如下图 1 所示,在换页 (分页) 功能、相关信息显示上,强化了微软原生 GridView 不足之处。
// 设定「光棒、单数列、双数列」的颜色
protected override void OnRowDataBound(System.Web.UI.WebControls.GridViewRowEventArgs e)
{
// 背景颜色暂时写死在下面这三行,但如此一来,即无法由程序员自订颜色;
// 若要开放让程序员自订颜色,必须将下列三行注解掉,亦即改由每支程序的前端 .aspx 透过 GridView 的「属性」窗口,去设定颜色
Wizard_OddRowBackColor = System.Drawing.Color.FromName("#FFFFFF"); // 白色
Wizard_EvenRowBackColor = System.Drawing.Color.FromName("#F7F6F3"); // 浅蓝色
Wizard_MouseOverBackColor = System.Drawing.Color.FromName("#FFFF77"); // 米黄色
// 设定「页码行」,是要显示在 GridView 上方还下方,还是上、下方都显示;另再设定「页码行」要显示在左、中、还是右侧。
// 若在此写死,则程序员即无法由前端自订;若要开放让程序员自订位置,必须将下面这两行注解掉。
//PagerSettings.Position = PagerPosition.Top; //.TopAndBottom;
//PagerStyle.HorizontalAlign = HorizontalAlign.Right;
<PagerSettings Position="Top" /><PagerStyle HorizontalAlign="right" />
此外,当一个 Class 直接继承自 ASP.NET 2.0 的 GridView Class 时,这个自订 Class (亦即 Custom Control GridView 控件) 在 .aspx 的 Columns Tag 中的 IntelliSense,都会无故失效,如下图 4 所示,造成程序员开发上的不便。版工猜测,这可能是微软 GridView 本身的 Bug。
本帖下载示例的解决之道,是再加上 WizardBoundField、WizardTempateField 两个 Class,直接继承自微软原生的 BoundField、TempateField 这两个 Class,但却能让自订的WizardGridView 控件里,Columns Tag 中的 IntelliSense 功能都恢复正常运作,如下图 4 所示。网友们亦可参考下载示例中,ObjectDataSource、SqlDataSource 网站里,SqlServer2005.aspx、Default.aspx 的写法。
图 4 继承自 GridView 后,Columns Tag 里的 IntelliSense,默认会无故失效
本帖的 WizardGridView 控件,网友们若有任何建议,或发现有 Bug,欢迎留言反应。但版工因工作关系,时间有限,各位的意见或反应的 Bug 可能无法立刻修正,敬请见谅。
--------------转自 WizardWu:探讨分页原理及 SQL Server 2005 的 ROW_NUMBER 函数(三)
本帖的重点,是版工我自己写了一个 Custom Control 的 GridView,名为 WizardGridView,其直接继承自微软 ASP.NET 2.0 原生的 GridView 控件,执行画面如下图 1 所示,在换页 (分页) 功能、相关信息显示上,强化了微软原生 GridView 不足之处。
// 设定「光棒、单数列、双数列」的颜色
protected override void OnRowDataBound(System.Web.UI.WebControls.GridViewRowEventArgs e)
{
// 背景颜色暂时写死在下面这三行,但如此一来,即无法由程序员自订颜色;
// 若要开放让程序员自订颜色,必须将下列三行注解掉,亦即改由每支程序的前端 .aspx 透过 GridView 的「属性」窗口,去设定颜色
Wizard_OddRowBackColor = System.Drawing.Color.FromName("#FFFFFF"); // 白色
Wizard_EvenRowBackColor = System.Drawing.Color.FromName("#F7F6F3"); // 浅蓝色
Wizard_MouseOverBackColor = System.Drawing.Color.FromName("#FFFF77"); // 米黄色
// 设定「页码行」,是要显示在 GridView 上方还下方,还是上、下方都显示;另再设定「页码行」要显示在左、中、还是右侧。
// 若在此写死,则程序员即无法由前端自订;若要开放让程序员自订位置,必须将下面这两行注解掉。
//PagerSettings.Position = PagerPosition.Top; //.TopAndBottom;
//PagerStyle.HorizontalAlign = HorizontalAlign.Right;
<PagerSettings Position="Top" /><PagerStyle HorizontalAlign="right" />
此外,当一个 Class 直接继承自 ASP.NET 2.0 的 GridView Class 时,这个自订 Class (亦即 Custom Control GridView 控件) 在 .aspx 的 Columns Tag 中的 IntelliSense,都会无故失效,如下图 4 所示,造成程序员开发上的不便。版工猜测,这可能是微软 GridView 本身的 Bug。
本帖下载示例的解决之道,是再加上 WizardBoundField、WizardTempateField 两个 Class,直接继承自微软原生的 BoundField、TempateField 这两个 Class,但却能让自订的WizardGridView 控件里,Columns Tag 中的 IntelliSense 功能都恢复正常运作,如下图 4 所示。网友们亦可参考下载示例中,ObjectDataSource、SqlDataSource 网站里,SqlServer2005.aspx、Default.aspx 的写法。
图 4 继承自 GridView 后,Columns Tag 里的 IntelliSense,默认会无故失效
本帖的 WizardGridView 控件,网友们若有任何建议,或发现有 Bug,欢迎留言反应。但版工因工作关系,时间有限,各位的意见或反应的 Bug 可能无法立刻修正,敬请见谅。
--------------转自 WizardWu:探讨分页原理及 SQL Server 2005 的 ROW_NUMBER 函数(三)
相关文章推荐
- ASP.NET 数据分页第三篇 - 结合 Custom Control 处理 GridView 的 UI 呈现
- ASP.NET GridView 直接进行数据的修改和分页的实现
- asp.net customdatagrid 或gridview绑定数据的时候经常要用到的 ItemDataBound 事件的方法
- UpdatePanel中GridView的分页问题 GridView中的超链接 (输入一半带提示功能)ASP.NET AJAX Control Toolkit 新扩展特性:AutoCompleteExtender
- ASP.NET + EXTJS 实现类似GridView行内编辑、Pannel、分页、增删改查、数据验证,格式转换
- ASP.NET 2.0的 GridView中模板列绑定DropDownList的数据处理
- ASP.net中的AJAX学习记录六 无刷新的数据编辑(GridView和DetailsView结合实例)
- ASP.net中的AJAX学习记录六 无刷新的数据编辑(GridView和DetailsView结合实例)
- An ASP.NET Gridview Control With Custom Paging (Technical)
- 功能齐全的GridView!Asp.Net中GridView的自定义分页,带箭头的排序,鼠标高亮每一行,无数据时的提醒,点击Button弹出框!
- [转】ASP.NET 数据分页第四篇 - WizardGridView 威力加强版
- ASP.NET处理浏览器中数据分页的方法
- ASP.NET 数据分页第四篇 - WizardGridView 威力加强版
- asp.net中使用分页控件,并绑定数据到GridView或Repeater
- 与ASP.NET服务器端结合返回JSON数据实现ExtJS GridPanel客户端分页
- [Asp.Net]GridView无代码分页排序,选中,编辑,取消,删除,正反双向排序,下拉菜单DropDownList结合
- Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
- Asp.Net[C#] 使用GridView 分页,编辑,删除,导出XML完整页面
- 【转】ASP.NET-GridView的分页功能
- ASP.NET(四):ASP.net实现假分页显示数据