Linq配合AspNetPager高效分页
时间:2011-05-31 来源:ゞ追忆o0ゞ
最近正在学习Linq,看到分页这里的时候感觉真的很简单,可是又担心学着学习就把知识混在一起,不知道大家在刚学的时候是不是跟我一样,因为他有的地主真的太像SQL了
分页方式:
获取数据总条数: var Count = db.XXX.Count(); 如果要是以往的写法还得写 select count(*) from XXXX; 还得调用SQLHelper.cs类里面的方法才行,现在就这么一句话就搞定…… 汗额..
再使用Skip()和Take()方法进行分页
说明,引用至李永京博客想学Linq去他博客吧:
http://www.cnblogs.com/lyj/
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
PageSize="15" UrlPaging="True">
</webdiyer:AspNetPager>
AspNetPager1.RecordCount = Count;
var paging = (from i in db.InBill
orderby i.InDate descending
select i).Skip(AspNetPager1.StartRecordIndex - 1).Take(AspNetPager1.PageSize); //索引方式:分页操作;
GridView1.DataSource = paging;
GridView1.DataBind();
说明:Skip()跳过集合的前n个元素;延迟。即我们跳过给定的数目返回后面的结果集。
说明:Take()获取集合的前n个元素;延迟。即只返回限定数量的结果集。
下面就把代码贴出来
Aspx页面代码片段:只有一个GridView和一个AspNetPager控件,没有其他的代码;
<div><asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" OnPageChanged="AspNetPager1_PageChanged"
PageSize="15" UrlPaging="True">
</webdiyer:AspNetPager>
</div>
后台代码:
var Count = db.InBill.Count();
AspNetPager1.RecordCount = Count;
var paging = (from i in db.InBill
orderby i.InDate descending
select i).Skip(AspNetPager1.StartRecordIndex - 1).Take(AspNetPager1.PageSize); //索引方式:分页操作;
GridView1.DataSource = paging;
GridView1.DataBind();
相关阅读 更多 +