怎么办prev next page?

时间:2012-02-17 01:30:19

标签: c# wpf

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的分页功能,谢谢。

1 个答案:

答案 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