repeater控件实现分页

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

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

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

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

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

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

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

 

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

<span style="font-size:18px;"><table>

  <tr>

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

     </td>

  </tr>

</table></span>


1. 假分页

<span style="font-size:18px;">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();

}</span>

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控件发布一些相关的心得总结,希望能给大家带来很有用的帮助
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET Repeater控件是一个数据绑定控件,它允许开发人员在Web应用程序中显示重复的数据。它可以绑定到数据源,如数据库或XML文件,并使用模板来定义如何呈现每个数据项。Repeater控件非常灵活,可以用于创建各种类型的列表和表格,包括新闻列表、产品目录、图库和评论区等。它还支持分页和排序功能,使用户可以方便地浏览和查找数据。 ### 回答2: asp.net repeater控件是用于在asp.net web页面中进行数据展示的控件。它可以根据绑定的数据源重复呈现一个模板,在每一次呈现时显示相应的数据。这个重复的模板由开发者自己通过HTML标记及ASP.NET控件来自定义。开发者可以使用多种技术来绑定数据源,常见的有:绑定到数据库、XML文件、内存中的对象等。 使用asp.net repeater控件可以极大的简化数据展示的工作,在一个web页面上可以通过多个repeater控件展示不同的数据,这些控件可以实现很多的布局方式,如列表、表格等。使用asp.net repeater控件不但可以提高数据展示效率,而且使页面更加灵活和可定制化。 除了数据绑定,asp.net repeater控件还有一些重要的属性和事件,例如:ItemDataBound事件,可以在绑定数据时对每一项进行处理;ItemTemplate属性,可以自定义重复模板;HeaderTemplate和FooterTemplate属性,不仅可以定义页眉和页脚,还可以在此处添加一些类似于数据汇总的统计信息,方便用户阅读和分析。 总的来说,asp.net repeater控件是一个非常实用和灵活的控件,可以帮助开发者快速实现复杂的数据展示需求,同时也可以提高网站的交互度和用户体验。 ### 回答3: asp.net repeater 控件是一种用于在 web 应用程序中绑定和显示数据的控件,它允许我们针对重复数据绑定一组控件实现数据的动态显示和编辑。换句话说,repeater 控件是一种用于展示数据的控件,它提供了一种非常灵活的方式来自定义显示数据的方式。 使用 repeater 控件的第一步是绑定数据源,数据源可以是任何实现了 System.Collections.IEnumerable 接口的集合。我们可以在页面的服务器端代码中绑定数据源,也可以在 aspx 文件中使用 DataSource 属性实现数据绑定。 在绑定数据源之后,我们可以根据自己的需要使用 asp.net 控件来自定义数据的显示方式。repeater 控件中最常用的控件是 Label、HyperLink、Literal 和 Image 等,它们可以帮助我们方便地绑定、格式化和展示数据。 另一个重要的功能是 repeater 控件允许我们自定义数据的分组方式。我们可以在绑定数据源之前对数据进行分组,然后在组的总览页面中展示数据。这种方式可以帮助我们轻松地将数据进行分类,并按照某种规律进行显示。 除此之外,repeater 控件还提供了一些事件和方法,例如 ItemDataBound、ItemCommand 等。通过这些事件和方法,我们可以在控件绑定数据时添加一些逻辑,以实现数据的进一步处理和操作。 总之,asp.net repeater 控件是一个非常实用的控件,可以帮助我们高效、灵活地展示数据。无论是在网站开发、数据管理、数据可视化等方面都具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值