上接扩展GridView控件(10) - 自定义分页样式

简介:
5、重写OnRowCreated以实现自定义分页样式
/// <summary> 
                 /// OnRowCreated 
                 /// </summary> 
                 /// <param name="e"></param> 
                 protected  override  void OnRowCreated(GridViewRowEventArgs e) 
                { 
                         if (e.Row.RowType == DataControlRowType.Pager && PagingStyle == Paging.PagingStyleCollection.Default) 
                        { 
                                LinkButton First =  new LinkButton(); 
                                LinkButton Prev =  new LinkButton(); 
                                LinkButton Next =  new LinkButton(); 
                                LinkButton Last =  new LinkButton(); 
 
                                TableCell tc =  new TableCell(); 
 
                                e.Row.Controls.Clear(); 
                                 
                                tc.Controls.Add( new LiteralControl( "  ")); 
                                 if (_recordCount.HasValue) 
                                { 
                                        tc.Controls.Add( new LiteralControl(_recordCount.ToString())); 
                                        tc.Controls.Add( new LiteralControl( "  ")); 
                                        tc.Controls.Add( new LiteralControl(PageSize.ToString())); 
                                        tc.Controls.Add( new LiteralControl( "  ")); 
                                } 
                                tc.Controls.Add( new LiteralControl((PageIndex + 1).ToString())); 
                                tc.Controls.Add( new LiteralControl( "/")); 
                                tc.Controls.Add( new LiteralControl(PageCount.ToString())); 
                                tc.Controls.Add( new LiteralControl( "    ")); 
 
                                 if (!String.IsNullOrEmpty(PagerSettings.FirstPageImageUrl)) 
                                { 
                                        First.Text =  "<img src='" + ResolveUrl(PagerSettings.FirstPageImageUrl) +  "' border='0'/>"
                                } 
                                 else 
                                { 
                                        First.Text = PagerSettings.FirstPageText; 
                                } 
                                First.CommandName =  "Page"
                                First.CommandArgument =  "First"
                                First.Font.Underline =  false
 
                                 if (!String.IsNullOrEmpty(PagerSettings.PreviousPageImageUrl)) 
                                { 
                                        Prev.Text =  "<img src='" + ResolveUrl(PagerSettings.PreviousPageImageUrl) +  "' border='0'/>"
                                } 
                                 else 
                                { 
                                        Prev.Text = PagerSettings.PreviousPageText; 
                                } 
                                Prev.CommandName =  "Page"
                                Prev.CommandArgument =  "Prev"
                                Prev.Font.Underline =  false
 
 
                                 if (!String.IsNullOrEmpty(PagerSettings.NextPageImageUrl)) 
                                { 
                                        Next.Text =  "<img src='" + ResolveUrl(PagerSettings.NextPageImageUrl) +  "' border='0'/>"
                                } 
                                 else 
                                { 
                                        Next.Text = PagerSettings.NextPageText; 
                                } 
                                Next.CommandName =  "Page"
                                Next.CommandArgument =  "Next"
                                Next.Font.Underline =  false
 
                                 if (!String.IsNullOrEmpty(PagerSettings.LastPageImageUrl)) 
                                { 
                                        Last.Text =  "<img src='" + ResolveUrl(PagerSettings.LastPageImageUrl) +  "' border='0'/>"
                                } 
                                 else 
                                { 
                                        Last.Text = PagerSettings.LastPageText; 
                                } 
                                Last.CommandName =  "Page"
                                Last.CommandArgument =  "Last"
                                Last.Font.Underline =  false
 
                                 if ( this.PageIndex <= 0) 
                                { 
                                        First.Enabled = Prev.Enabled =  false
                                } 
                                 else 
                                { 
                                        First.Enabled = Prev.Enabled =  true
                                } 
 
                                tc.Controls.Add(First); 
                                tc.Controls.Add( new LiteralControl( "  ")); 
                                tc.Controls.Add(Prev); 
                                tc.Controls.Add( new LiteralControl( "  ")); 
 
                                 // 当前页左边显示的数字分页按钮的数量 
                                 int rightCount = ( int)(PagerSettings.PageButtonCount / 2); 
                                 // 当前页右边显示的数字分页按钮的数量 
                                 int leftCount = PagerSettings.PageButtonCount % 2 == 0 ? rightCount - 1 : rightCount; 
                                 for ( int i = 0; i < PageCount; i++) 
                                { 
                                         if (PageCount > PagerSettings.PageButtonCount) 
                                        { 
                                                 if (i < PageIndex - leftCount && PageCount - 1 - i > PagerSettings.PageButtonCount - 1) 
                                                { 
                                                         continue
                                                } 
                                                 else  if (i > PageIndex + rightCount && i > PagerSettings.PageButtonCount - 1) 
                                                { 
                                                         continue
                                                } 
                                        } 
 
                                         if (i == PageIndex) 
                                        { 
                                                tc.Controls.Add( new LiteralControl( "<span style='color:red;font-weight:bold'>" + (i + 1).ToString() +  "</span>")); 
                                        } 
                                         else 
                                        { 
                                                LinkButton lb =  new LinkButton(); 
                                                lb.Text = (i + 1).ToString(); 
                                                lb.CommandName =  "Page"
                                                lb.CommandArgument = (i + 1).ToString(); 
 
                                                tc.Controls.Add(lb); 
                                        } 
 
                                        tc.Controls.Add( new LiteralControl( "  ")); 
                                } 
 
                                 if ( this.PageIndex >= PageCount - 1) 
                                { 
                                        Next.Enabled = Last.Enabled =  false
                                } 
                                 else 
                                { 
                                        Next.Enabled = Last.Enabled =  true
                                } 
                                tc.Controls.Add(Next); 
                                tc.Controls.Add( new LiteralControl( "  ")); 
                                tc.Controls.Add(Last); 
                                tc.Controls.Add( new LiteralControl( "  ")); 
 
                                tc.ColumnSpan =  this.Columns.Count; 
                                e.Row.Controls.Add(tc); 
                        } 
 
                         base.OnRowCreated(e); 
                }
 
控件使用
添加这个控件到工具箱里,然后拖拽到webform上,设置PagingStyle属性为Default,同时设置GridView的原有属性PageButtonCount,FirstPageText,PreviousPageText,NextPageText,LastPageText,FirstPageImageUrl,PreviousPageImageUrl,NextPageImageUrl,LastPageImageUrl
ObjData.cs
using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
 
using System.ComponentModel; 
 
/// <summary> 
/// OjbData 的摘要说明 
/// </summary> 
public  class OjbData 

         public OjbData() 
        { 
                 // 
                 // TODO: 在此处添加构造函数逻辑 
                 // 
        } 
 
        [DataObjectMethod(DataObjectMethodType.Select,  true)] 
         public DataTable Select() 
        { 
                DataTable dt =  new DataTable(); 
                dt.Columns.Add( "no"typeof( string)); 
                dt.Columns.Add( "name"typeof( string)); 
 
                 for ( int i = 0; i < 30; i++) 
                { 
                        DataRow dr = dt.NewRow(); 
                        dr[0] =  "no" + i.ToString().PadLeft(2, '0'); 
                        dr[1] =  "name" + i.ToString().PadLeft(2, '0'); 
 
                        dt.Rows.Add(dr); 
                } 
 
                 return dt; 
        } 
}
 
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
        <title>SmartGridView测试</title> 
</head> 
<body> 
        <form id="form1" runat="server"> 
                <div> 
                        <yyc:SmartGridView ID="SmartGridView1" runat="server" DataSourceID="ObjectDataSource1" 
                                AutoGenerateColumns="False" AllowPaging="true" PagingStyle="Default"> 
                                <Columns> 
                                        <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" /> 
                                        <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" /> 
                                        <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" /> 
                                        <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" /> 
                                        <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" /> 
                                        <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" /> 
                                </Columns> 
                        </yyc:SmartGridView> 
                        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" 
                                TypeName="OjbData"></asp:ObjectDataSource> 
                </div> 
        </form> 
</body> 
</html>
/*测试版的实现 结束*/
 




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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
SQL 搜索推荐 Java
MyBatis项目中使用GROUP BY分组查询出现异常的原因分析和修复记录
本篇文章记录了在MyBatis项目中使用SQL中的分组查询GROUP BY语句,查询多个字段时数据查询报错的问题。分析了导致GROUP BY查询语句报错的原因并提出解决这样问题的方法。通过对这样问题的解决记录,可以帮助大家在使用MyBatis中的GROUP BY查询时避免出现一些问题。
3870 0
MyBatis项目中使用GROUP BY分组查询出现异常的原因分析和修复记录
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
304 21
|
SQL 监控 Java
Seata常见问题之报找不到全局事务可能已经完成如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
2360 0
|
负载均衡 监控 Dubbo
Dubbo——初识RPC、Dubbo框架、使用直连方式实现Dubbo
Dubbo——初识RPC、Dubbo框架、使用直连方式实现Dubbo
Dubbo——初识RPC、Dubbo框架、使用直连方式实现Dubbo
|
数据可视化 算法 计算机视觉
【计算机视觉】图像增强----图像的傅立叶变换
【计算机视觉】图像增强----图像的傅立叶变换
1186 0
【计算机视觉】图像增强----图像的傅立叶变换
|
数据可视化 Android开发 iOS开发
FL Studio21中文版水果软件安装教程
FL Studio电脑版本有很多,每个版本各有优点。除了最新版本外,还有历史经典版本,用户可以根据自己的需求进行下载,为了让大家体验到FL Studio更多版本特色,FL Studio专题将会提供FL Studio电脑PC所有版本欢迎查阅下载。 FL Studio21是一款功能十分丰富和强大的音乐编辑软件,能够帮助用户进行编曲、剪辑、录音、混音等操作,让用户能够全面地调整音频,软件对电脑及相应配置的要求不高,使用起来非常方便,提供了一个声音编辑器,声音编辑器可以编辑各种声音,制作理想中的音响效果,对它感兴趣的话就下载安装FL Studio21版吧。
560 0
|
缓存 Java 编译器
图解JVM整体结构、执行流程以及2种架构模型,你学会了吗?
HotSpot VM 是目前市面上高性能虚拟机的代表作之一。 方法区和堆:多线程共享 虚拟机栈、本地方法栈、程序计数器:每个线程独有一份 执行引擎:包含三部分:解释器,及时编译器(后端编译器),垃圾回收器 它采用解释器与即时编译器并存的架构。 在今天,Java 程序的运行性能早已脱胎换骨,已经达到了可以和 C/C++ 程序一较高下的地步。
【Linux】RK3399平台开发系列——设备树的学习笔记
设备树(Device Tree)是用于描述硬件设备和系统关系的树形数据结构,主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中,由于硬件的多样性和复杂性,设备树变得越来越流行,用户可以用设备树来描述各种外设的属性和配置信息,以帮助内核识别和管理外设。
RGB颜色模型
RGB颜色模型
1060 0
RGB颜色模型