Asp.net NHibernate分页和绑定到Gridview

Asp.net NHibernate分页和绑定到Gridview,asp.net,nhibernate,gridview,Asp.net,Nhibernate,Gridview,我有一个Gridview,它绑定到IList。 我希望分页“更安全的方式”(只获取我需要的项目),因此我在我的存储库上创建了一个metod,如下所示 public Ilist<Item> GetItems(int from, int number){ ... } 但是我没有找到一个地方告诉GV这个值 这里的策略是什么?有必要有一个ObjectDS吗?我真不敢相信 如何进行分页?不幸的是,您确实需要一个对象数据源或实现一个自定义数据源。这里有一个指向msdn文档的链接,其中提到了它。

我有一个Gridview,它绑定到IList。 我希望分页“更安全的方式”(只获取我需要的项目),因此我在我的存储库上创建了一个metod,如下所示

public Ilist<Item> GetItems(int from, int number){ ... }
但是我没有找到一个地方告诉GV这个值

这里的策略是什么?有必要有一个ObjectDS吗?我真不敢相信


如何进行分页?

不幸的是,您确实需要一个对象数据源或实现一个自定义数据源。这里有一个指向msdn文档的链接,其中提到了它。Datagrid确实支持做您想做的事情,但ms对GridView不支持


我想一个选项是创建某种虚拟自定义数据源,它将公开您仍然需要在其外部控制流程的方法/事件。

如果您实现自己的分页功能,这是GridView的一个令人沮丧的限制,我也遇到了同样的问题

当时,我看到的仅有三种选择是:

  • 创建实现自定义的单独用户控件 与GridView控件接口的导航功能
  • 创建从GridView控件继承的派生类,并 添加自定义导航功能
  • 使用ObjectDataSource

  • 我使用了#1的一个基本实现,因为它比#2更简单,而且比使用#3更可取,因为#3与我们在项目中使用的模型-视图-演示器模式(以及使单元测试更加困难)不匹配 您需要创建一个ObjectDataSource,并从NHybernate中的DAO提供它。 ObjectDataSource需要一个DataTable来进行分页、筛选和编辑

    public int CountItems{ get{ ... } }