NHibernate分页和绑定到Gridview

时间:2009-03-20 16:09:58

标签: asp.net nhibernate gridview

我有一个Gridview,它绑定到IList。 我想要分页“更安全的方式”(只获取我需要的项目),所以我在我的存储库中创建了一个像这样的方法

public Ilist<Item> GetItems(int from, int number){ ... }

事情是,我绑定它,它只显示n项,并不显示分页控件。我试图通过

找到告诉gridview我在结果集上有多少元素的方法
public int CountItems{ get{ ... } }

但是我找不到告诉GV这个值的地方。

这里的策略是什么?是否有必要拥有ObjectDS?我拒绝相信!

如何进行分页?

3 个答案:

答案 0 :(得分:1)

NHibernate有一个将IQueryable转换为DataTable的本机类 您需要创建一个ObjectDataSource并从NHybernate中的DAO中提取它。 ObjectDataSource需要一个DataTable来进行分页,过滤和编辑。

答案 1 :(得分:0)

不幸的是,您确实需要Object DataSource或实现自定义数据源。这是msdn doc的一个链接,提到它http://msdn.microsoft.com/en-us/library/5aw1xfh3.aspx。 Datagrid确实支持你想做的事情,但ms对GridView没有做同样的事情。

我想一个选项是创建某种虚拟自定义数据源,这将暴露您仍然需要控制其外部进程所需的方法/事件。

答案 2 :(得分:0)

implementing paging in an ASP.NET gridview using NHibernate.如果您实现自己的分页功能,这对GridView来说是一个令人沮丧的限制。

当时,我看到的唯一三个选项是:

  1. 创建实现自定义的单独用户控件 与GridView控件接口的导航功能
  2. 创建一个继承自GridView控件的派生类 添加自定义导航功能
  3. 使用ObjectDataSource
  4. 我选择#1的基本实现,因为它比#2更简单,比使用#3更优选,而#3不能与我们在项目中使用的模型 - 视图 - 展示器模式很好地融合(以及使单元测试更加困难)。

相关问题