asp.net Linq TO Sql 分页方法 |
本文标签:asp.net,分页 分页方法 复制代码 代码如下: /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="replist">控件ID</param> /// <param name="DataSource">数据源</param> /// <param name="IndexPage">当前页</param> /// <param name="PageSize">每页数据条数</param> /// <param name="PageParemart">页面搜索参数 like &a=a&b=b </param> /// <returns></returns> public static string ShowPage<T>(System.Web.UI.WebControls.Repeater replist, IQueryable<T> DataSource, int IndexPage, int PageSize, string PageParemart) { string rtnStr = ""; int sourceCount = DataSource.Count(); if (sourceCount == 0)//数据源无数据 { rtnStr = string.Empty; } else { int yutemp = sourceCount % PageSize; int pagecounts = (yutemp == 0) ? (sourceCount / PageSize) : (sourceCount / PageSize + 1);//总页数 rtnStr = " <div style=width:100%;><div style= float:left;>页次:" + IndexPage + "页/" + pagecounts + "页,共" + sourceCount + "条记录</div> "; if (pagecounts == 1) //总共一页数据 { replist.DataSource = DataSource; rtnStr += "[首页] [上一页] [下一页] [尾页] "; } else { rtnStr += "<div style= float:right;>"; if (IndexPage == 1)//首页 { replist.DataSource = DataSource.Take(PageSize); rtnStr += "[首页] [上一页] <a href=?page=" + (IndexPage + 1) + PageParemart + ">[下一页]</a> <a href=?page=" + (pagecounts) + PageParemart + ">[尾页]</a> "; } else { replist.DataSource = DataSource.Skip((IndexPage - 1) * PageSize).Take(PageSize); if (IndexPage == pagecounts)//末页 { rtnStr += "<a href=?page=1" + PageParemart + ">[首页]</a> <a href=?page=" + (IndexPage - 1) + PageParemart + ">[上一页]</a> [下一页] [尾页] "; } else { rtnStr += "<a href=?page=1" + PageParemart + ">[首页]</a> <a href=?page=" + (IndexPage - 1) + PageParemart + ">[上一页]</a> <a href=?page=" + (IndexPage + 1) + PageParemart + ">[下一页]</a> <a href=?page=" + (pagecounts) + PageParemart + ">[尾页]</a> "; } } rtnStr += "</div></div>"; } replist.DataBind(); } return rtnStr; } 页面调用 复制代码 代码如下: private int PageSize = 10; private int IndexPage = 1; private string PageParemart = ""; private void Bind() { strwhere = "1=1 " + strwhere; str2 = "1=1 " + str2; var a = from b in datas.fav_Awards_User select b; Label2.Text = common.PageFen.ShowPage(replist, a, this.IndexPage, this.PageSize, this.PageParemart); if (Label2.Text == "") { Label1.Visible = true; } } |