angualrjs的UI-GRID中的服务器端分页

时间:2016-06-13 06:44:35

标签: angularjs asp.net-mvc pagination

我知道如何使用AngularJS的UI-GRID进行客户端分页。但我想知道使用AngularJS的UI-GRID的服务器端分页。单击下一页的方法,仅从服务器检索下一页的结果并显示给用户。我搜索了很多,但找不到任何正确的解决方案。

如果您能提供Plunker作为示例代码,那就太棒了。

提前致谢。

1 个答案:

答案 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;

<强>策略

  1. 将PageSize作为pageSize(比如10)
  2. 传递给服务器端函数或API
  3. 将skipRows传递给服务器端。所以假设你在第3页,那么

    skipRows = pageSize *(第-1页)

  4. 因此,当您在第3页时,则skipRows值将变为(10 * 2 = 20),因此从服务器端开始,您将在跳过10 rows后获得下一个20 rows

    编辑1:如何设置UI网格

    useExternalPagination设为true并使用gridApi.pagination.on.paginationChanged跟踪网页更改并获取数据

    您可以参考此plnkr