zoukankan      html  css  js  c++  java
  • gridview 中自定义分页

    在gridview 的分页当中,

    是相当的个抑郁,

    有1 2 3 的地方没有向上向下,

    有向上向下的地方又没有1 2 3 导航

    所以抽了个空自定义了一个,效果给大家看下

    当然  没有大动干戈的重写一个gridview 控件

    而是写了一个pageManager 类来对gridview 的page进行控制

    ok,个人认为注释还凑合

    代码如下

      1using System;
      2using System.Data;
      3using System.Configuration;
      4using System.Web;
      5using System.Web.Security;
      6using System.Web.UI;
      7using System.Web.UI.HtmlControls;
      8using System.Web.UI.WebControls;
      9using System.Web.UI.WebControls.WebParts;
     10using System.Drawing;
     11
     12/// <summary>
     13///Pager 的摘要说明
     14/// </summary>

     15
     16
     17/*=========================彪悍的分割线============================================
     18 * 时间:2008年9月24日1:30:21 
     19 * 作者:ATPKING
     20 * 内容:分页管理类
     21 * 功能描述:实现自定义的GridView 的分页控件
     22 * 测试人:ATPKING
     23 * 测试代码:
     24      XianPGL.aspx 中测试通过
     25 * 测试结论:能将GridView自定义一个分页
     26 ==========================彪悍的分割线============================================*/

     27public class PagerManager
     28{
     29    private GridView _gridview;
     30    
     31    public PagerManager()
     32    
     33    }

     34    public PagerManager(GridView gridview)
     35    {
     36        _gridview = gridview;
     37    }

     38    /// <summary>
     39    /// 将gridview 启动自定义分页
     40    /// </summary>

     41    public void doPaging()
     42    {
     43        _gridview.AllowPaging = true;//将gridview 允许分页打开
     44        _gridview.PageIndexChanging += new GridViewPageEventHandler(_gridview_PageIndexChanging);//注册分页事件
     45        _gridview.RowCreated += new GridViewRowEventHandler(_gridview_RowCreated);//注册row绑定事件
     46    }

     47    public void doPaging(GridView g)
     48    {
     49        _gridview = g;
     50        doPaging();
     51    }

     52    /// <summary>
     53    /// 将gridview 启动自定义分页
     54    /// </summary>
     55    /// <param name="page">一页的行数</param>

     56    public void doPaging(int page) 
     57    {
     58        _gridview.PageSize = page;
     59        doPaging();
     60    }

     61    /// <summary>
     62    /// 将gridview 启动自定义分页
     63    ///  </summary>
     64    /// <param name="page">一页的行数</param>
     65    /// <param name="g">对应的Grid</param>

     66    public void doPaging(int page, GridView g)
     67    {
     68        _gridview = g;
     69        _gridview.PageSize = page;
     70
     71        doPaging();
     72    }

     73    void _gridview_RowCreated(object sender, GridViewRowEventArgs e)
     74    {
     75        if (e.Row.RowType == DataControlRowType.Pager)//当生成pager行时候
     76        {
     77            声明“第一页”、“前一页”、“后一页”、“最后页”、“页提示信息”
    110
    111            TableCell tmp = e.Row.Cells[0];// 读到系统的分页
    112            tmp.Controls.Add(Button_IndexFirst);//将几个按钮添加在系统分页后面
    113            tmp.Controls.Add(Button_IndexNext);
    114            tmp.Controls.Add(Button_IndexPrevious);
    115            tmp.Controls.Add(Button_IndexLast);
    116            tmp.Controls.Add(label_Index);
    117
    118
    119        }

    120    }

    121
    122    void PageButtonClick(object sender, EventArgs e)
    123    {
    124        GridView tmpGridView = (GridView)((((((LinkButton)sender).Parent).Parent).Parent).Parent);//寻找到Button的祖孙控件GridView
    125        LinkButton clickedButton = ((LinkButton)sender);
    126        if (clickedButton.CommandName == "first")//当引发事件的按钮命令为First时
    127        {
    128            tmpGridView.PageIndex = 0;
    129            tmpGridView.DataBind();
    130        }

    131        else if (clickedButton.CommandName == "next")
    132        {
    133            if (tmpGridView.PageIndex < tmpGridView.PageCount - 1)
    134            {
    135                tmpGridView.PageIndex = tmpGridView.PageIndex + 1;
    136                tmpGridView.DataBind();
    137            }

    138        }

    139        else if (clickedButton.CommandName == "previous")
    140        {
    141            if (tmpGridView.PageIndex >= 1)
    142            {
    143                tmpGridView.PageIndex -= 1;
    144                tmpGridView.DataBind();
    145            }

    146        }

    147        else if (clickedButton.CommandName == "last")
    148        {
    149            tmpGridView.PageIndex = tmpGridView.PageCount - 1;
    150            tmpGridView.DataBind();
    151        }

    152    }

    153    void _gridview_PageIndexChanging(object sender, GridViewPageEventArgs e)
    154    {
    155        _gridview.PageIndex = e.NewPageIndex;
    156        _gridview.DataBind();
    157    }

    158}

    159

    调用的时候非常方便,就在相应的地方实例化一个对象,之后执行dopaging 就ok

    使用代码如下

    Code

    ok,还是比较简单,当然有高手还是重写了gridview    只不过个人认为还是有点杀鸡用牛刀哦。

    好了,本人应届毕业生 囧,还请各位看官多多指教

  • 相关阅读:
    Android:Service通知Activity更新界面
    greendao 查询之数据去重
    Android GreenDao 深查询 n:m 的关系
    java 获取当天(今日)零点零分零秒
    Android Theme.Dialog 到光 AppCompatDialog
    Android 如何利用Activity的Dialog风格完成弹出框设计
    上周热点回顾(9.14-9.20)团队
    .NET跨平台之旅:将示例站点从ASP.NET 5 Beta5升级至Beta7团队
    上周热点回顾(9.7-9.13)团队
    上周热点回顾(8.31-9.6)团队
  • 原文地址:https://www.cnblogs.com/jicheng1014/p/1298107.html
Copyright © 2011-2022 走看看