protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
int CurPage = 1
int PageSize = 5
int.TryParse(Request["CurPage"], out CurPage)
if (CurPage == 0)
CurPage = 1
//获取总数据集合
IList<ContentsModel>objs = new List<ContentsModel>()
objs = Contents.GetAllContents()
//绑定数据显示控件
GridView1.DataSource = QueryByPage(PageSize, CurPage, objs)
GridView1.DataBind()
//获取分页目录
this.Label1.Text = GetQueryPagesMenu(PageSize, objs)
}
}
/// <summary>
/// 输入分页字符页码
/// </summary>
/// <param name="PageSize"></param>
/// <param name="objs"></param>
/// <returns></returns>
protected string GetQueryPagesMenu(int PageSize, IList<ContentsModel>objs)
{
int Count
var db = objs
var query = from cms_contents in db select cms_contents
Count = (query.Count() / PageSize + 1)//不足一页按一页算
string PageMenu = ""
//拼接分页目录
for (int i = 1i <= Counti++)
{
PageMenu += "<a href='?CurPage=" + i.ToString() + "'>" + i.ToString() + "</a>| "
}
return PageMenu
}
/// <summary>
/// 获取分页后的数据集
/// </summary>
/// <param name="PageSize">每页显示的记录数</param>
/// <param name="CurPage">页数</param>
/// <param name="objs">数据总集合</param>
/// <returns></returns>
protected List<ContentsModel>QueryByPage(int PageSize, int CurPage, IList<ContentsModel>objs)
{
var query = from cms_contents in objs select cms_contents
return query.Take(PageSize * CurPage).Skip(PageSize * (CurPage - 1)).ToList()
你然你说到分页,那应该是使用了数据绑定控件吧?比如gridview之类的。这种情况下我建议你用LinqDataSource,把GridView的DatasourceID设置成LinqDataSource的实例,然后在LinqDataSource的设置里(把鼠标放到LinqDataSource控件上,会出现一个小三角,点它)把“启用分页”选上就可以了。
如果你的查询语句比较复杂,可以自己重写LinqDataSource的Selecting事件,在事件方法的最后加上e.result = 你的Linq查询结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)