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