【问题标题】:Paging using Linq-to-sql, Listview and Datapager使用 Linq-to-sql、Listview 和 Datapager 进行分页
【发布时间】:2011-04-08 13:56:32
【问题描述】:

我正在使用 LINQ to SQL 搜索一个相当大的数据库,并且正在使用 listview 和 datapager 进行分页。我知道 Skip() 和 Take() 方法并让它们正常工作。但是,我无法使用数据分页器的结果计数,因为它们始终是 Take() 方法中确定的页面大小。

例如:

var result = (from c in db.Customers
              where c.FirstName == "JimBob"
              select c).Skip(0).Take(10);

此查询将始终返回 10 个或更少的结果,即使有 1000 个 JimBobs。因此,DataPager 将始终认为只有一个页面,并且用户无法浏览整个结果集。

如何欺骗数据分页器显示页数为 1000,但一次绑定 10 个项目?我不想使用 objectdatasource。

谢谢。

【问题讨论】:

    标签: linq-to-sql paging


    【解决方案1】:

    运行第二个查询:

    var count = Customers.Where(c => c.FirstName == "JimBob").Count();
    

    【讨论】:

    • 我知道了。但是我在哪里使用这个计数。如何更新计数为 1000 而不是 10 的数据分页器。
    • 请帮助...自从我被这个问题困扰已经两天了。我错过了一些非常简单的东西吗?
    • 我从来没有使用过数据分页器...如果它应该为您进行分页,您是否应该使用 skip & take 来限制查询?还是它也能处理?
    【解决方案2】:

    尝试使用这个..

        var result = (from c in db.Customers
              where c.FirstName == "JimBob"
              select c).Skip((PAGENUMBER-1 * 10)).Take(10);
    

    在简单的LINQ Paging上查看博文

    希望对您有所帮助.. :)

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多