数据表从API获取JSON而不设置“aaData”

时间:2012-09-03 16:29:13

标签: javascript jquery json jquery-plugins datatables

我正在使用数据表,我得到的数据就像示例

中所示
$('.data-table').dataTable({
        "bProcessing": true,
        "sAjaxSource": "/api/item/list",
        "aoColumns": [
            { "mData": "Title" },
            { "mData": "Price" }
        ]
});

但是有一个问题,我需要把所有的对象都包装在aaData中,以便这样工作

[HttpGet]
public dynamic List()
{
    var items = _db.Items.OrderBy(x => x.ID);

    var a = new {
        aaData = items
    };

    return a;
}

这显然是因为我需要修改我的后端而不是返回普通的JSON。我已尝试设置aaData而不是sAjaxSource,但却出错了,但没有用。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:4)

您可以告诉DataTables使用带有sAjaxDataProp参数的其他属性名称,而不是属性aaData。例如:

// Get data from { "data": { "inner": [...] } }
$(document).ready( function() {
  var oTable = $('#example').dataTable( {
    "sAjaxSource": "sources/data.txt",
    "sAjaxDataProp": "data.inner"
  } );
} );