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

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


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


作者: webabcd


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

介绍
扩展GridView控件:
自定义分页样式。显示总记录数、每页记录数、当前页数、总页数、首页、上一页、下一页、末页和分页按钮

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


关键代码
using  System;
using  System.Collections.Generic;
using  System.Text;

using  System.Web.UI.WebControls;
using  System.Web.UI;
using  System.ComponentModel;
using  System.Collections;
using  System.Data;
using  System.Web.UI.HtmlControls;

namespace  YYControls.SmartGridViewFunction
{
    
/// <summary>
    
/// 扩展功能:自定义分页样式
    
/// </summary>

    public class CustomPagerSettingsFunction : ExtendFunction
    
{
        
/// <summary>
        
/// 构造函数
        
/// </summary>

        public CustomPagerSettingsFunction()
            : 
base()
        
{

        }


        
/// <summary>
        
/// 构造函数
        
/// </summary>
        
/// <param name="sgv">SmartGridView对象</param>

        public CustomPagerSettingsFunction(SmartGridView sgv)
            : 
base(sgv)
        
{
    
        }


        
/// <summary>
        
/// 扩展功能的实现
        
/// </summary>

        protected override void Execute()
        
{
            
this._sgv.InitPager += new SmartGridView.InitPagerHandler(_sgv_InitPager); 
        }


        
/// <summary>
        
/// SmartGridView的InitPager事件
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="row">一个 System.Web.UI.WebControls.GridViewRow,表示要初始化的页导航行</param>
        
/// <param name="columnSpan">页导航行应跨越的列数</param>
        
/// <param name="pagedDataSource">一个 System.Web.UI.WebControls.PagedDataSource,表示数据源</param>

        void _sgv_InitPager(object sender, GridViewRow row, int columnSpan, PagedDataSource pagedDataSource)
        
{
            
int recordCount = pagedDataSource.DataSourceCount;

            LinkButton First 
= new LinkButton();
            LinkButton Prev 
= new LinkButton();
            LinkButton Next 
= new LinkButton();
            LinkButton Last 
= new LinkButton();

            TableCell tc 
= new TableCell();

            row.Controls.Clear();

            tc.Controls.Add(
new LiteralControl("&nbsp"));

            
#region 显示总记录数 每页记录数 当前页数/总页数
            
string textFormat = String.Format(this._sgv.CustomPagerSettings.TextFormat,
                pagedDataSource.PageSize,
                pagedDataSource.DataSourceCount,
                pagedDataSource.CurrentPageIndex 
+ 1,
                pagedDataSource.PageCount);
            tc.Controls.Add(
new LiteralControl(textFormat));
            
#endregion


            
#region 设置“首页 上一页 下一页 末页”按钮
            
if (!String.IsNullOrEmpty(this._sgv.PagerSettings.FirstPageImageUrl))
                First.Text 
= "<img src='" + this._sgv.ResolveUrl(this._sgv.PagerSettings.FirstPageImageUrl) + "' border='0'/>";
            
else
                First.Text 
= this._sgv.PagerSettings.FirstPageText;

            First.CommandName 
= "Page";
            First.CommandArgument 
= "First";

            
if (!String.IsNullOrEmpty(this._sgv.PagerSettings.PreviousPageImageUrl))
                Prev.Text 
= "<img src='" + this._sgv.ResolveUrl(this._sgv.PagerSettings.PreviousPageImageUrl) + "' border='0'/>";
            
else
                Prev.Text 
= this._sgv.PagerSettings.PreviousPageText;

            Prev.CommandName 
= "Page";
            Prev.CommandArgument 
= "Prev";


            
if (!String.IsNullOrEmpty(this._sgv.PagerSettings.NextPageImageUrl))
                Next.Text 
= "<img src='" + this._sgv.ResolveUrl(this._sgv.PagerSettings.NextPageImageUrl) + "' border='0'/>";
            
else
                Next.Text 
= this._sgv.PagerSettings.NextPageText;

            Next.CommandName 
= "Page";
            Next.CommandArgument 
= "Next";

            
if (!String.IsNullOrEmpty(this._sgv.PagerSettings.LastPageImageUrl))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值