wpf如何做prev下一页。 控制可以用吗? 喜欢这个
prev 1 2 3 4 5 ... 20 next
我发现了这个,但我不知道如何使用它。
var dicts = (from m in db.sys_Dictionary
orderby m.sd_Key
select m).Skip(90).Take(10);
我可以运行linq,但我不知道如何使它成为一个完整的组合。
我发现很多数据都是b / s,我需要c / s的分页功能,谢谢。
答案 0 :(得分:1)
你刚刚发布的是一个linq查询,但如果你不知道linq如何工作,就无法解释。基本上这些陈述说明选择所有来自表m又名数据库上下文 db表名称sys_Dictionary和 order by 列sd_Key。 那么它是什么样的,它使用Skip方法跳过返回的前90个,只返回接下来的10个记录。
您不理解的问题是这只会打开此实例。要设置下一个上一页的内容,你应该设置一个像这样的分页类
public PaginatedList<T>(IQueryable<T> source, int pageIndex, int? pageSize)
{
PageIndex = pageIndex; //global variable
PageSize = pageSize ?? source.Count(); //global variable
TotalCount = source.Count(); //global variable
TotalPages = (int)Math.Ceiling(TotalCount /(double)PageSize); //global variable
this.AddRange(source.Skip(PageIndex*PageSize).Take(PageSize));
}
那么你有两种方法,一种是 HasPreviousPage ,一种是 HasNextPage
例如
public bool HasPreviousPage
{
get
{
return(PageIndex >0); //same global variable
}
}
然后从他们那里你可以传递你的信息并返回该页面例如
int page= 6;
var dictspage = new PaginatedList<m>(dicts, page, 10); //remove the skip and take from your dicts