最近正在学习Linq,看到分页这里的时候感觉真的很简单,可是又担心学着学习就把知识混在一起,不知道大家在刚学的时候是不是跟我一样,因为他有的地主真的太像SQL了
分页方式:
获取数据总条数: var Count = db.XXX.Count(); 如果要是以往的写法还得写 select count(*) from XXXX; 还得调用SQLHelper.cs类里面的方法才行,现在就这么一句话就搞定…… 汗额..
再使用Skip()和Take()方法进行分页
说明,引用至李永京博客想学Linq去他博客吧:
说明: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 >
< 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();
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();