【问题标题】:Field name is in JSON but datatables don't recognise it?字段名称在 JSON 中,但数据表无法识别?
【发布时间】:2018-11-14 06:35:21
【问题描述】:

错误信息如下:

为第 0 行第 0 列请求未知参数“emPONumber”

但是emPONumber在JSON里面,为什么datatables还是提示这个错误?

<script type="text/javascript">
    $(document).ready(function () {
        var tableId = 'tablePurchaseOrders';
        var table = $('#' + tableId).DataTable({
            "processing": true,
            "serverSide": true,
            "ajax": {
                url: 'http://localhost/ControlTower2WebAPI/api/PurchaseOrder/GetAllUploadedPurchaseOrders',
                type: 'GET',
                data: function (data) {
                    //debugger;
                    var model = {
                        draw: data.draw,
                        start: data.start,
                        length: data.length,
                        columns: data.columns,
                        search: data.search,
                        order: data.order
                    };
                    return model;
                },
                failure: function (result) {
                    debugger;
                    alert("Error occurred while trying to get data from server: " + result.sEcho);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    debugger;
                    alert("Error occurred while trying to get data from server!");
                },
                dataSrc: function (json) {
                    var _data = JSON.stringify(json.Data);
                    debugger;
                    return _data;
                }
            }
            ,
            "columns": [
                { "data": "emPONumber", title: "emPONumber" },
                { "data": "ASMPONumber", title: "ASMPONumber" },
                { "data": "material", title: "material" }
            ]
        });
    });
</script>

json in dataSrc: function (json):

{"ContentEncoding":null,"ContentType":null,"Data":{"draw":1,"recordsTotal":1,"recordsFiltered":1,"data":[{"emPONumber":"EM1234567","ASMPONumber":"A741000013","material":"26-00010","quantity":5,"UOM":"EA","asmPOQuantity":5,"createBy":"m","ASMPOYear":2018,"ASMPOMonth":6,"ASMPOVendor":"10008"}]},"JsonRequestBehavior":1,"MaxJsonLength":null,"RecursionLimit":null}

json (_data) 在dataSrc 中通过ajax 返回:

{
    "draw":1,   
    "recordsTotal":1,
    "recordsFiltered":1,
    "data":
        [{
            "emPONumber":"EM1234567",
            "ASMPONumber":"A741000013",
            "material":"26-00010",
            "quantity":5,
            "UOM":"EA",
            "asmPOQuantity":5,
            "createBy":"m",
            "ASMPOYear":2018,
            "ASMPOMonth":6,
            "ASMPOVendor":"10008"
        }]
}

【问题讨论】:

    标签: javascript jquery json datatables


    【解决方案1】:

    试试

    dataSrc: function (json) {
       for(key in json.Data){ json[key] = json.Data[key]; }
       delete json['Data'];
    
       return json.data;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-10-01
      • 2021-02-10
      • 2019-09-01
      • 2020-10-07
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多