DataTables 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

我最近在实现jquery数据表的ajax功能时遇到了一个问题。直到我给我的json对象集合起了一个明确的名字,我才能够显示任何东西。如果没有返回任何名称,是否应该有一个默认的数据源

客户端控制设置(包括向动态定位提供数据的隐藏字段):

 $('#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
   } 
}