linq 分页方法怎么用

linq 分页方法怎么用,第1张

使用linq进行分页,参考方法如下:

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查询结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10714905.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存