zoukankan      html  css  js  c++  java
  • 控件用法参考:DataList和Repeater控件的分页显示功能

    使用PagedDataSource类实现
                      DataList和Repeater控件的分页显示功能
       Asp.net提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,很多时候我们喜欢使用DataList或Repeater控件来显示数据,但是Repeater和DataList没有分页功能,有时很不方便。

        PagedDataSource类封装了DataGrid控件的属性,从而使DataGrid控件可以执行分页,它就是一个数据的容器,我们先把数据从数据库中读取出来放在这个容器中,然后设置容器的属性取出当前要显示的页上的部分数据,然后将此部分数据再绑定到页面上的显示控件上。

        下面实例是Repeater控件和HyperLink控件结合PagedDataSource类实现的数据分页列表

      

    数据功能实现源代码:

    //对用于分页的类的引用
    PagedDataSource pds=new PagedDataSource();
    pds.DataSource=dt.DefaultView;//设置数据源(DataTable类型)
    pds.AllowPaging=true;
    //第页显示的行数
    pds.PageSize=18;

    //设置当前页
    if(Pageindex<1) Pageindex=1;
    pds.CurrentPageIndex=Pageindex-1;

    rpt_NewsList.DataSource=pds;
    rpt_NewsList.DataBind();

    //显示页码
    ltl_RecordCount.Text = pds.DataSourceCount.ToString();
    ltl_PageCount.Text = pds.PageCount.ToString();
    ltl_Pageindex.Text = Pageindex.ToString();
    ltl_Jump.Text = Jump_List (pds.PageCount , Pageindex , L_Manage);

    //显示上下翻页(URL后面跟的参数自已跟据需要定义)
    lbn_First.ToolTip = "跳转到首页";
    lbn_First.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page=1";
    lbn_Prev.ToolTip = "跳转到上一页";
    lbn_Prev.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+(Pageindex-1);
    lbn_Next.ToolTip = "跳转到下一页";
    lbn_Next.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+(Pageindex+1);
    lbn_Last.ToolTip = "跳转到最后一页";
    lbn_Last.NavigateUrl=Request.CurrentExecutionFilePath+"?Org_ID="+ L_Manage +"&page="+pds.PageCount.ToString();

    //确定链接的显示方式
    if(Pageindex<=1 && pds.PageCount<=1)
    {
        lbn_First.NavigateUrl = "";
        lbn_Prev.NavigateUrl = "";
        lbn_Next.NavigateUrl = "";
        lbn_Last.NavigateUrl = "";
    }
    if(Pageindex<=1 && pds.PageCount>1)
    {
        lbn_First.NavigateUrl = "";
        lbn_Prev.NavigateUrl = "";
    }
    if(Pageindex >= pds.PageCount)
    {
        lbn_Next.NavigateUrl = "";
        lbn_Last.NavigateUrl = "";
    }

    /// <summary>
    /// 计算分页跳转
    /// </summary>
    /// <param name="Pagecount">页面数</param>
    /// <returns>string</returns>
    private string Jump_List(int Pagecount , int Pageindex , long L_Manage)
    {
    StringBuilder sb = new StringBuilder ();
    sb.Append ("<select id=\"Page_Jump\" name=\"Page_Jump\" onchange=\"window.location='"+ Request.CurrentExecutionFilePath +"?page='+ this.options[this.selectedIndex].value + '&Org_ID="+ L_Manage +"';\">");
    for(int i = 1 ; i <= Pagecount ; i++)
    {
    if(Pageindex == i)
    sb.Append ("<option value='"+ i +"' selected>"+ i +"</option>");
    else
    sb.Append ("<option value='"+ i +"'>"+ i +"</option>");
    }
    sb.Append ("</select>");

    return sb.ToString ();
    }

    动行显示效果如图:

    PagedDataSource 类的部分公共属性( 略)

  • 相关阅读:
    会话 终端
    linux 守护进程(daemon process)代码-详细注释
    linux进程及进程控制
    POSIX 消息队列 之 概述 链接方式
    管道和FIFO 一
    菜鸟从零学编程(七)——搭建一个完整的Java开发环境
    谈《赢》之慧眼识人
    kgdb接收一个数据包详解
    MapReduce调度与执行原理之作业初始化
    System Request 进入KDB模式过程详解
  • 原文地址:https://www.cnblogs.com/Dlonghow/p/1263917.html
Copyright © 2011-2022 走看看