repeater分页控件_kindle翻页方式有几种[通俗易懂]

repeater分页控件_kindle翻页方式有几种[通俗易懂]repeater控件实现排序的方法,今天我再向大家介绍repeater控件如何实现分页的效果

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

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

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

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

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

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

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

 

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

 <table>

   <tr>

      <td align="center"> 
             <asp:LinkButton ID="lbtnFirstPage" runat="server" OnClick="lbtnFirstPage_Click">页首</asp:LinkButton>
             <asp:LinkButton ID="lbtnpritPage" runat="server" OnClick="lbtnpritPage_Click">上一页</asp:LinkButton> 
             <asp:LinkButton ID="lbtnNextPage" runat="server" OnClick="lbtnNextPage_Click">下一页</asp:LinkButton>
             <asp:LinkButton ID="lbtnDownPage" runat="server" OnClick="lbtnDownPage_Click">页尾</asp:LinkButton><br />
             第<asp:Label ID="labPage" runat="server" Text="Label"></asp:Label>页/共<asp:Label ID="LabCountPage" runat="server" Text="Label"></asp:Label>页

      </td>

  </tr>

</table>
1. 假分页

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
         this.labPage.Text = "1";
         this.contrlRepeater();
    }
}

//获取指字符个数的字符

public string cuts(string aa,int bb)
{
    if (aa.Length <= bb)
    {
        return aa;
    }
   else
    {
        return aa.Substring(0, bb);
    }
}

//Repeater分页控制显示方法

public void contrlRepeater()

{
     DataTable dt = '连接数据库并查询'
     PagedDataSource pds = new PagedDataSource();
     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 = t
    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 void lbtnpritPage_Click(object sender, EventArgs e)
{
     this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1);
     this.contrlRepeater();
}

protected void lbtnFirstPage_Click(object sender, EventArgs e)
{
     this.labPage.Text = "1";
     this.contrlRepeater();
}

protected void lbtnDownPage_Click(object sender, EventArgs e)
{
     this.labPage.Text =this.LabCountPage.Text;
     this.contrlRepeater();
}

 

protected void lbtnNextPage_Click(object sender, EventArgs e)
{
     this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
     this.contrlRepeater();
}

2. 真分页

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

select top 每页显示的记录数 * from topic where id not in (select top (当前的页数-1)*每页显示的记录数 id from topic order by id desc) order by id desc

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

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

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

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

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

 

 

 

今天的文章repeater分页控件_kindle翻页方式有几种[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/74788.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注