Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# jQuery Datatable:分页和筛选未正确显示_C#_Asp.net_Ajax_Datatables - Fatal编程技术网

C# jQuery Datatable:分页和筛选未正确显示

C# jQuery Datatable:分页和筛选未正确显示,c#,asp.net,ajax,datatables,C#,Asp.net,Ajax,Datatables,我不知道如何解决这个问题,尝试了一整天,但没有成功地修复分页。我使用jQueryDataTable,为了显示我的巨大数据,我使用服务器端 作为测试,只调用表中的10行数据。然后,在传递到表之前,我使用以下方法重新构造了dataSrc中的数据。表显示成功,但分页和筛选器显示不正确 谁能帮上忙 下面是我的代码 AJAX $('#example').DataTable({ "processing": true, "serverSide": true, "ajax": { type

我不知道如何解决这个问题,尝试了一整天,但没有成功地修复分页。我使用jQueryDataTable,为了显示我的巨大数据,我使用服务器端

作为测试,只调用表中的10行数据。然后,在传递到表之前,我使用以下方法重新构造了dataSrc中的数据。表显示成功,但分页和筛选器显示不正确

谁能帮上忙

下面是我的代码

AJAX

$('#example').DataTable({
  "processing": true,
  "serverSide": true,
  "ajax": {
     type: "POST",
     contentType: "application/json; charset=utf-8",
     url: "datatables.aspx/GetData",
     'data': function (data) {
        return JSON.stringify(data);
     },
     "dataSrc": function (data) {
        var json = $.parseJSON(data.d);

        var myData = {};
        myData.draw = parseInt(json.otherData[0].draw);
        myData.recordsTotal = parseInt(json.otherData[0].recordsTotal);
        myData.recordsFiltered = parseInt(json.otherData[0].recordsFiltered);
        myData.data = json.searchData;

        return myData.data;
     }
   },
   "columns": [
      { "data": "Username" }
   ]
  }
});
C#

这是我返回到datatable以结构化表的数据。

数据筛选和分页不正确,应仅分页1页。

您的响应不包含属性
其他数据
搜索数据
,您通过这些名称访问数据

您的响应是一个具有以下属性的简单对象

  • 数据
  • recordsTotal
  • 已过滤的记录
  • draw
因此,您需要像这样直接从您的响应中访问它们

var myData = {};
myData.draw = parseInt(json.draw);
myData.recordsTotal = parseInt(json.recordsTotal);
myData.recordsFiltered = parseInt(json.recordsFiltered);
myData.data = json.data;
另外,
recordsTotal
应该是
total
记录的数量现在您正在返回
10
,并且显示的记录也是
10


您得到的是
NaN
,因为没有属性
json.otherData[0]。recordsFiltered
,所以当您将其更改为
json.recordsFiltered
时,它将显示
数字

对于我们的情况,我有一个解决方案。您应该直接修改响应的对象

"dataSrc": function (data) {
        var json = $.parseJSON(data.d);

        data.draw = parseInt(json.otherData[0].draw);
        data.recordsTotal = parseInt(json.otherData[0].recordsTotal);
        data.recordsFiltered = parseInt(json.otherData[0].recordsFiltered);
        data.data = json.searchData;

        return data.data;
     }

希望它能在你的情况下起作用。

请查看此页@Haksu这与他的问题无关。因为你的回答中的记录过滤=0-尝试更改记录过滤=totalRecords查看之前发生的情况尝试,即使你在图片中看到我得到的记录总数=10,至少会显示总计行而不是NaN。插件似乎有问题。@saf21我在代码1中观察到两件事。您正在以名称
(searchData)
作为
响应发送
数据集
,但您没有访问响应中确切的
数据表
。您好,谢谢,但我已经按照您的建议执行了。您可以签入上面的代码。我在dataSrc中发现返回数据只是为了绘制表格,而不是绘制过滤器和分页。你能做一个js小提琴吗?@saf21很高兴听到这个消息。:)
"dataSrc": function (data) {
        var json = $.parseJSON(data.d);

        data.draw = parseInt(json.otherData[0].draw);
        data.recordsTotal = parseInt(json.otherData[0].recordsTotal);
        data.recordsFiltered = parseInt(json.otherData[0].recordsFiltered);
        data.data = json.searchData;

        return data.data;
     }