我们尝试使用cassandra来存储数据库。我们无法在c#datastax驱动程序中向后/向前翻页。任何人都可以建议在MVC项目中分页结果的方法。
答案 0 :(得分:5)
您可以使用C#驱动程序的manual paging feature来浏览Cassandra的结果。基本上它的工作原理如下:
SetAutoPage(false)
和SetPageSize(pageSize)
即可获得第一页。RowSet
将具有PagingState
属性。将该分页状态保存在某处(例如,在会话存储或Cookie中)PagingState
。SetAutoPage(false)
和SetPagingState(yourPagingStateFromStorage)
以获取下一页。棘手的部分是向后分页 。如果你在你的UI中缓存你的分页结果(即每次点击一个按钮转到下一页/上一页时都没有刷新整页),这不是问题,因为向后翻页真的只是移动向后浏览已经查询并缓存的数据(可能在JavaScript代码中的数组中)。
如果您每次有人点击浏览结果时都会进行整页刷新,那么您需要保留所有页面中的PagingState
,直到您确定它们已完成分页(即商店) Session或cookie之类的多个分页状态值。这样,如果有人向后翻页,您只需查找该上一页的分页状态标记,并在查询中使用它。
注意:如果您处于整页刷新状态,则可能还可以将分页状态作为查询字符串参数传递。例如,链接到下一页“/ some / page?pagingState = PAGING_STATE_FROM_ROWSET_CURRENTLY_DISPLAYED”,然后进行向后分页,只需执行与浏览器后退按钮相同的操作。