Nik*_*ore 3 asp.net asp.net-mvc paging cassandra
我们尝试使用cassandra来存储数据库.我们无法在c#datastax驱动程序中向后/向前翻页.任何人都可以建议一种方法来在MVC项目中分页结果.
您可以使用C#驱动程序的手动分页功能来浏览Cassandra的结果.基本上它的工作原理如下:
SetAutoPage(false)并SetPageSize(pageSize)在您的声明中获取第一页.RowSet这是一个从查询返回将有一个PagingState属性.在某处保存该分页状态(例如,在会话存储或Cookie中)PagingState从存储它的位置检索.SetAutoPage(false)并SetPagingState(yourPagingStateFromStorage)在语句上获取下一页.棘手的部分是向后翻页.如果你在你的UI中缓存你的分页结果(即每次点击一个按钮转到下一页/上一页时都没有刷新整页),这不是问题,因为向后翻页真的只是移动向后浏览已经查询并缓存的数据(可能在JavaScript代码中的数组中).
如果您每次有人点击页面浏览结果时都要进行整页刷新,那么您需要保留PagingState所有页面,直到您确定它们已完成分页(即在Session之类的内容中存储多个分页状态值或饼干).这样,如果有人向后翻页,您只需查找该上一页的分页状态标记,并在查询中使用它.
注意:如果您处于整页刷新情况,您也可以将查询状态作为查询字符串参数传递.例如,链接到下一页"/ some/page?pagingState = PAGING_STATE_FROM_ROWSET_CURRENTLY_DISPLAYED",然后向后分页只需执行与浏览器后退按钮相同的操作.
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |