我知道如何使用AngularJS的UI-GRID进行客户端分页。但我想知道使用AngularJS的UI-GRID的服务器端分页。单击下一页的方法,仅从服务器检索下一页的结果并显示给用户。我搜索了很多,但找不到任何正确的解决方案。
如果您能提供Plunker作为示例代码,那就太棒了。
提前致谢。
答案 0 :(得分:0)
如果您使用的是实体框架,请在Take and Skip
的帮助下使用OrderBy
扩展方法
context.YourTable.OrderByDescending(sort).Skip(skipRows).Take(pageSize).ToList();
如果您使用的是sql查询,请在OFFSET and FETCH
的帮助下使用order by
SELECT * FROM YourTable order by SomeRow desc
OFFSET @skipRows -- skip 10 rows
FETCH NEXT @pageSize ROWS ONLY;
<强>策略强>
将skipRows传递给服务器端。所以假设你在第3页,那么
skipRows = pageSize *(第-1页)
因此,当您在第3页时,则skipRows值将变为(10 * 2 = 20)
,因此从服务器端开始,您将在跳过10 rows
后获得下一个20 rows
。
编辑1:如何设置UI网格
将useExternalPagination
设为true并使用gridApi.pagination.on.paginationChanged
跟踪网页更改并获取数据
您可以参考此plnkr