DataTables ajax需要返回数据源的显式json集合名称?
我最近在实现jquery数据表的ajax功能时遇到了一个问题。直到我给我的json对象集合起了一个明确的名字,我才能够显示任何东西。如果没有返回任何名称,是否应该有一个默认的数据源 客户端控制设置(包括向动态定位提供数据的隐藏字段):DataTables ajax需要返回数据源的显式json集合名称?,datatables,asp.net-ajax,datasource,Datatables,Asp.net Ajax,Datasource,我最近在实现jquery数据表的ajax功能时遇到了一个问题。直到我给我的json对象集合起了一个明确的名字,我才能够显示任何东西。如果没有返回任何名称,是否应该有一个默认的数据源 客户端控制设置(包括向动态定位提供数据的隐藏字段): $('#accountRequestStatus').dataTable( { "destroy": true, // within a method that will be called multiple times wit
$('#accountRequestStatus').dataTable(
{
"destroy": true, // within a method that will be called multiple times with new/different data
"processing": true,
"ajax":
{
"type": "GET",
"url": "@Url.Action("SomeServerMethod", "SomeController")",
"data": { methodParam1: 12341, methodParam2: 123423, requestType: 4123421 }
}
, "paging": false
, "columns": [
{ "data": "DataElement1" },
{ "data": "DataElement2", "title": "Col1" },
{ "data": "DataElement3", "title": "Col2" },
{ "data": "DataElement4", "title": "Col3" },
{ "data": "DataElement5", "title": "Col4" },
]
, "columnDefs": [
{
"targets": 0, // hiding first column, userId
"visible": false,
"searchable": false,
"sortable": false
},
{
"targets": 5, // creates action link using the hidden data for that row in column [userId]
"render": function (data, type, row) {
return "<a href='@Url.Action("ServerMethod", "Controller")?someParam=" + row["DataElement1"] + "'>Details</a>"
},
"searchable": false,
"sortable": false
}
]
});
如前所述,ajax调用返回数据,但在我给集合命名之前不会显示。也许我错过了文档中的这一必要步骤,但是将控件连接到一个返回的集合作为默认数据源,而不需要名称,这难道就没有意义吗相当于两个多小时的闲逛,尝试不同的事情。这就是我要说的
也许这也会帮助其他人…dataTables确实有一个属性!dataTables将在JSON中查找
data
或aaData
部分。这就是为什么您最终使用new{data=tableRows}
。也就是说,如果未指定dataSrc
!如果JSON与该概念不同,则必须指定dataSrc
:
如果返回未命名的数组/集合[{…},{…}]
:
ajax: {
url: "@Url.Action("SomeServerMethod", "SomeController")",
dataSrc: ""
}
如果返回的JSON数组名不同于data
或aaData
,如customers
:
ajax: {
url: "@Url.Action("SomeServerMethod", "SomeController")",
dataSrc: "customers"
}
如果内容像{a:{b:[{…},{…}]}}
ajax: {
url: "@Url.Action("SomeServerMethod", "SomeController")",
dataSrc: "a.b"
}
如果您有非常复杂的JSON,或者需要以任何方式操作JSON,例如从内容中挑选-dataSrc
也可以是一个函数:
ajax: {
url: "@Url.Action("SomeServerMethod", "SomeController")",
dataSrc: function(json) {
//do what ever you want
//return an array containing JSON / object literals
}
}
希望以上的事情能澄清
ajax: {
url: "@Url.Action("SomeServerMethod", "SomeController")",
dataSrc: function(json) {
//do what ever you want
//return an array containing JSON / object literals
}
}