我有一个Gridview,它绑定到IList。 我想要分页“更安全的方式”(只获取我需要的项目),所以我在我的存储库中创建了一个像这样的方法
public Ilist<Item> GetItems(int from, int number){ ... }
事情是,我绑定它,它只显示n项,并不显示分页控件。我试图通过
找到告诉gridview我在结果集上有多少元素的方法public int CountItems{ get{ ... } }
但是我找不到告诉GV这个值的地方。
这里的策略是什么?是否有必要拥有ObjectDS?我拒绝相信!
如何进行分页?
答案 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的基本实现,因为它比#2更简单,比使用#3更优选,而#3不能与我们在项目中使用的模型 - 视图 - 展示器模式很好地融合(以及使单元测试更加困难)。