【问题标题】:Data Tables get JSON from API without setting "aaData"数据表从 API 获取 JSON 而不设置“aaData”
【发布时间】:2012-08-28 09:34:42
【问题描述】:

我正在使用数据表,我得到的数据如示例中所示

$('.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,但出现错误并且没有用。关于如何解决此问题的任何想法?

【问题讨论】:

    标签: javascript jquery json jquery-plugins datatables


    【解决方案1】:

    您可以通过 sAjaxDataProp 参数告诉 DataTables 使用另一个属性名称,而不是属性 aaData。例如:

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

    【讨论】:

    • 太好了,我设置了"sAjaxDataProp": "",它现在可以与来自 MVC3 的默认 JSON 输出一起使用,而无需任何包装器。谢谢
    猜你喜欢
    • 2018-11-30
    • 2015-12-07
    • 2019-12-12
    • 2012-12-19
    • 2020-10-14
    • 2012-01-29
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多