zoukankan      html  css  js  c++  java
  • asp.ent Repeter实现分页

    在ASP.net中Repeater控件是一个经常要用到的控件,DataGrid一般都是用于以表格形式显示的情形,而在丰富多彩的网页样式的网页中,比如说BLOG,留言板等,要使用DataGrid就相对要吃力一些,Repeater比datagrid更容易定制样式,利用模板可以像在ASP中那样制作漂亮的界面。然而Repeater没有提供分页功能,那怎么来实现分页呢?方法有很多,这里我讲一上用PagedDataSource来实现Repeater的分页功能。这种方法有点类似DataGrid自带的分页功能,有一个不足之处,那就是每次都要加载所有的数据内容,这在数据量很大的时候对WEB服务器的要求比较高,效率也相对低,但在一般的场合,还算是一个比较好的选择,毕竟Microsoft提供这样的功能,也是有它的实用价值的。如果想要提高分页的效率,我们就要使用另外的方法,让每次只加载页面显示的内容,而不是加载所有的内容,我会在以后的日子里研究一下,然后再写出来。

            在处理分页前,假定已经将所要显示的数据读出,存放到实例名为MyDataSet这样一个DataSet类型数据中,另外页面中有几个用来显示页面链接信息的HyperLink,主要有
            LinkFirstPage:HyperLink型 首页链接
            LinkPrePage: HyperLink型 前页链接
            LinkLastPage:HyperLink型 末页链接
            LinkNextPage:HyperLink型 后页链接
     这里我只说一下这四个链接的实现方法,至于其他的像列表当前页附近的页面链接,页面跳转等就不讲了,实现方法类似,如果想要与我讨论的,欢迎联系我。  
     

            //===================================== = = = ===============================================
            PagedDataSource MyPagedDS = new PagedDataSource();      //声明一个新的PagedDataSource实例MyPagedDS
            MyPagedDS.DataSource = MyDataSet.Tables[0].DefaultView; //给MyPagedDS设置数据源
            MyPagedDS.AllowPaging = true;                           //允许分页
            MyPagedDS.PageSize = 5;                             //每页的记录数

            //得到当前要显示的页面的页码
            int CurPage = 1;
            if(Request["page"] != null)
                try
                {
                    CurPage = Convert.ToInt32(Convert.ToString(Request["page"]));
                }
                catch
                {
                    CurPage = 1;
                }

            MyPagedDS.CurrentPageIndex = CurPage-1;

            //---------------------------------------------------------------------------
            //显示相关信息

            //显示当前页及总页数
            this.LabelCurrPage.Text = CurPage + "/" + MyPagedDS.PageCount;
           
            //首页链接,上一页链接
            if(!MyPagedDS.IsFirstPage)
            {
                this.LinkFirstPage.Visible=true;
                this.LinkFirstPage.NavigateUrl ="page=1";

                this.LinkPrePage.Visible = true;
                this.LinkPrePage.NavigateUrl = "?page=" + Convert.ToString(CurPage-1);
            }
            else
            {
                this.LinkFirstPage.Visible=false;
                this.LinkPrePage.Visible = false;
            }

            //末页链接,下一页链接
            if(!MyPagedDS.IsLastPage)
            {
                this.LinkLastPage.Visible=true;
                this.LinkLastPage.NavigateUrl = "?page=" + Convert.ToString(MyPagedDS.PageCount);

                this.LinkNextPage.Visible = true;
                this.LinkNextPage.NavigateUrl = "?page=" + Convert.ToString(CurPage+1);
            }
            else
            {
                this.LinkLastPage.Visible=false;
                this.LinkNextPage.Visible = false;
            }

            //============================================== = = = = ======================================
           

            //Repeater绑定
            this.RepeaterBlog.DataSource = MyPagedDS;
            this.RepeaterBlog.DataBind();

  • 相关阅读:
    MySQL大表优化方案
    写一个简单脚本检测mysql主从是否正常
    Nginx配置基于ip的虚拟主机
    推荐一些好的linux学习网站
    shell基础入门(一)
    centos7和linux防火墙配置入门
    centos7.0之vsftpd随笔
    获取系统相关属性
    linux 文件管理操作入门
    ANSI文件操作
  • 原文地址:https://www.cnblogs.com/caishuowen/p/2036819.html
Copyright © 2011-2022 走看看