您的当前位置:首页>新品 > 正文

repeater控件如何实现分页排序?repeater控件实现分页

来源:CSDN 时间:2023-04-18 10:15:36

在上一篇中,我向大家介绍了repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果。

分页分为真分页和假分页。

真分页:控件上一页需要显示多少数据,就从数据库取出并绑定多少数据,每次换页时都需要访问数据库。


(资料图片仅供参考)

假分页:从数据库一次性取出所有数据绑定到控件上,再将所有数据根据一页显示多少条而分页。

从以上二者的概念上我们可以看出,区别在于分页时从数据库读取信息的方式,真分页的效率无疑是最高的。假分页在首次页面加载的时候会比较慢(如果数据量较多)。

二者其实各有各的优缺点,可根据需要来自行选择(比如数据量较多时,先用真分页;想减少与后台的交互,可以使用假分页)。

下面我就介绍repeater控件基于以上两种方法的分页:

无论真分页还是假分页,前台分页按钮代码都可以类似以下的方式:

页首上一页下一页页尾             第页/共页

1. 假分页

protected void Page_Load(object sender,EventArgs e){    if(!IsPostBack)    {        this.labPage.Text = "1";            this.contrlRepeater();    }}//获取指字符个数的字符public string cuts(string aa,intbb){    if(aa.Length <= bb)    {       return aa;    }    else    {        returnaa.Substring(0, bb);   }} //Repeater分页控制显示方法public void contrlRepeater(){     DataTabledt = "连接数据库并查询"    PagedDataSource pds = newPagedDataSource();    pds.DataSource = dt.DefaultView;    pds.AllowPaging = true;    pds.PageSize = 2;    pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) - 1;    Repeater1.DataSource = pds;    LabCountPage.Text = pds.PageCount.ToString();    labPage.Text = (pds.CurrentPageIndex + 1).ToString();    this.lbtnpritPage.Enabled = true;    this.lbtnFirstPage.Enabled = true;    this.lbtnNextPage.Enabled = true;    this.lbtnDownPage.Enabled = true;    if(pds.CurrentPageIndex<1)    {         this.lbtnpritPage.Enabled = false;         this.lbtnFirstPage.Enabled = false;     }    if (pds.CurrentPageIndex == pds.PageCount-1)    {         this.lbtnNextPage.Enabled = false;         this.lbtnDownPage.Enabled = false;    }    Repeater1.DataBind();} protected voidlbtnpritPage_Click(object sender, EventArgs e){    this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text)- 1);    this.contrlRepeater();} protected voidlbtnFirstPage_Click(object sender, EventArgs e){    this.labPage.Text = "1";    this.contrlRepeater();} protected voidlbtnDownPage_Click(object sender, EventArgs e){    this.labPage.Text =this.LabCountPage.Text;    this.contrlRepeater();} protected voidlbtnNextPage_Click(object sender, EventArgs e){    this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text)+ 1);    this.contrlRepeater();}

2. 真分页

真分页主要实现在于sql语句上:

selecttop每页显示的记录数*fromtopicwhereidnotin(selecttop(当前的页数-1)*每页显示的记录数idfromtopicorderbyiddesc)orderbyiddesc

再查询出总记录数来计算总页数pageCount

int pageCount =(int)Math.Ceiling((double)查询出的总记录数个数/ (double)每页显示的记录数)

之后将返回的数据表直接绑定到repeater控件上,再将当前页数、总页数利用以上我给出的假分页套上就行了。

有了思路和主要代码,相信大家自己应该能套上,我就不再重复写代码了。

好了,repeater的分页实现,我已经告诉大家了,怎么样?感觉很不错吧!在最近博客中,我还会就repeater控件发布一些相关的心得总结,希望能给大家带来很有用的帮助

标签:

最新新闻:

新闻放送
Top