【问题标题】:JTable Not Showing Sort Or PaginationJTable 不显示排序或分页
【发布时间】:2019-11-18 22:05:31
【问题描述】:

我将一个 JSON 数组传递给我的 JTable,并尝试使用 AJAX 来显示没有页面加载的数据。这是一个带有 C# 后端的 asp.net 核心 mvc 应用程序。数据加载,但正如我所说,我没有排序的能力,所有结果都显示,而不是我在排序参数中要求的每页仅显示 10 个。

我需要在这里改变什么?

[Route("api/ca")]
public JsonResult Index()
{
    var ListData = _context.CIModel.FromSql("StoredProcedureName").ToList();
    return Json(new { Result = "OK", Records = ListData, TotalRecordCount = ListData.Count });
}
$('#btnTest').click(function () {
    $('#jTableTest').jtable({
        paging: true,
        pageSize: '10',
        sorting: true,
        defaultSorting: 'Name ASC',
        actions: {
            listAction: function (postData, jtParams) {
                return $.Deferred(function ($dfd) {
                    $.ajax({
                        url: 'https://localhost:44328/api/ca?jtStartIndex=' + jtParams.jtStartIndex + '&jtPageSize=' + jtParams.jtPageSize + '&jtSorting=' + jtParams.jtSorting,
                        type: 'GET',
                        dataType: 'json',
                        success: function (data) {
                            $dfd.resolve({ Records: data.records, Result: data.result, TotalRecordCount: data.TotalRecordCount });
                        },
                        error: function () {
                            $dfd.reject();
                        }
                    });
                });
            }
        },
        fields: {
            name: {
                title: 'Name',
                width: '35%'
            },
            phone: {
                title: 'Phone',
                width: '15%'
            },
            yrsexp: {
                title: 'Experience',
                width: '15%'
            }
        }
    });
    $('#jTableTest').jtable('load');
});

【问题讨论】:

    标签: c# jquery model-view-controller jquery-jtable


    【解决方案1】:

    排序和分页都是 SERVER 端的操作。您需要在客户端和服务器上进行细微的更改。

    在客户端,在这个例子中你不需要编写自己的延迟函数,只需给jTable URL。然后它将分页(jtStartIndex 和 jtPageSize)和排序(jtSorting)参数传递给服务器。这些参数在传递给延迟函数的 jtParams 参数中,因此您必须在 ajax 调用中转发它们。

    一个服务器,你需要响应这些排序和分页参数。请注意,在分页回复中,TotalRecordCount 是未分页记录的总数。不是返回的数字。 jTable用它来显示总页数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-11
      • 2012-01-05
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 2014-04-21
      相关资源
      最近更新 更多