0

我需要获取jsgrid的页面大小和页码。根据页码,我需要从数据库中获取记录。因为当我使用超过 100k 条记录时,jsgrid 会卡住并且加载很长时间。

如何获取jsgrid的页码?而且我还想获​​取搜索文本并将其传递给 cs 方法。我不想通过使用在 jsgrid 中进行过滤

loadData: function (filter) {
    return $.grep(clients, function (client) {
        return (!filter["fieldname"] || client["fieldname"].toLowerCase().indexOf(filter["fieldname"].toLowerCase()) > -1) )}

它正在过滤jsgrid中加载的数据。我想将搜索文本传递给cs。

获取要在 jsgrid 中绑定的数据,(序列化数据)

  DataTable dtItem = // get the data from the DB foreach 
    (DataRow row in dtItem .Rows) 
    {
     gridList += "{'Id':" + row["ID"] + ",'Name': '" + row["NAME"] + "'}, ";
    }

要进行搜索,需要从过滤区域获取数据并将其与页码一起传递给 sql 过程。

4

1 回答 1

1

可以在jsGrid选项中决定所需的页面大小,例如:

$("#table").jsGrid({
  ...
  paging: true,
  pageSize: 10, //eg 10 rows per page
  pageLoading: true,
  ...

使用上述选项,网格将显示分页控件,即允许用户导航到下一页/上一页或跳转到页面的链接。

pageLoading为 true 时,方法filter中的参数loadData将有两个成员,例如:

filter: { pageSize: 10, pageIndex: 2 }

filter.pageIndex由用户点击的导航链接决定。然后,您应该使用这两个参数来相应地调整您的数据库查询,以仅返回第 thpageSize页的行(从 0 开始计数)。pageIndex

你的loadData方法不能返回整个数据表!如果您使用的是 Microsoft SQL Server,则可以轻松地仅返回页面的行,例如:

SELECT * FROM T1 OFFSET pageSize*pageIndex ROWS FETCH NEXT pageSize ROWS ONLY
于 2017-07-26T01:03:36.493 回答