javascript - 使用 sAjaxSource 有效,但设置 aaData myseld 无效

标签 javascript datatables

当我将 DataTables 与 sAjaxSource 一起使用时,它可以正常工作,但是当预先执行 ajax 并设置 aaData 属性时,我得到了错误。有什么想法吗?

这个方法有效:

   // This method works fine
$('#spiderData').dataTable({
    "bProcessing": true,
    "sAjaxSource": "spiderOrders.cshtml?GetOrders=true&pid=" + pid + "&itemid=" + itemId + "&signatur=" + signatur + "&orderid=" + orderid + "&type=signatur",
    "aoColumns": [
        { "mDataProp": "BuildOrderId" },
        { "mDataProp": "description" },
        { "mDataProp": "BuildProductOrderId" },
        { "mDataProp": "state_desc" },
        { "mDataProp": "buildProductName" },
        { "mDataProp": "program" },
        { "mDataProp": "KP_BPO" },
        { "mDataProp": "WorkOrderId" },
        { "mDataProp": "title" },
        { "mDataProp": "state_desc" },
        { "mDataProp": "contractorName" },
        { "mDataProp": "TP" }
    ]
    });

但这不是:

     // This is not working, why????
 $.ajax({
        type: 'GET',
        url: "spiderOrders.cshtml?GetOrders=true&pid=" + pid + "&itemid=" + itemId + "&signatur=" + signatur + "&orderid=" + orderid + "&type=signatur",
        data: "jalla",
        success: function (data) {
            $('#spiderData').dataTable({
                "bProcessing": true,
                "aaData": data,
                "aoColumns": [
                    { "mDataProp": "BuildOrderId" },
                    { "mDataProp": "description" },
                    { "mDataProp": "BuildProductOrderId" },
                    { "mDataProp": "state_desc" },
                    { "mDataProp": "buildProductName" },
                    { "mDataProp": "program" },
                    { "mDataProp": "KP_BPO" },
                    { "mDataProp": "WorkOrderId" },
                    { "mDataProp": "title" },
                    { "mDataProp": "state_desc" },
                    { "mDataProp": "contractorName" },
                    { "mDataProp": "TP" }
                ]
            });

        }
    });

如果返回的第一个示例数据具有以下格式:

{ "aaData": [
{
    "BuildOrderId":"S2008-015758.001",
    "description":"Hordaland-Bergen-ALH4 - Leveranse av 2 Mb",
    "BuildProductOrderId":"S2008-015758.002", .....

在第二个例子中这个格式:

[{"BuildOrderId":"S2008-006891.001","description":"MXJP81, BERSTADHUSETMOB, HOR-00323","BuildProductOrderId":"S2008-006891.002", ....

我是不是遗漏了什么,或者响应的格式有误(我已经检查过几次了……)

最佳答案

为什么采用第二种方式很重要?如果您需要访问 .ajax 必须提供的所有功能(与默认的 .getJSON 相比,变量具有更大的灵 active ),您仍然可以使用 fnServerData 参数来实现。

就是说,第二种方式的问题可能在于您试图直接使用“数据”。它需要首先被解析。

"aaData": $.parseJSON(data).aaData,

免责声明:我没有对此进行测试,更喜欢 fnServerData 方法

关于javascript - 使用 sAjaxSource 有效,但设置 aaData myseld 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966959/

相关文章:

javascript - Bootstrap 的下拉菜单不起作用?

javascript - 调用 .datatable 时无法获取未定义或 null 引用的属性 'aDataSort'

javascript - 尝试为发票添加新行(div)并在页面重复时获取

javascript - JavaScript 中未使用函数参数的标准约定

javascript - 数据表标题在页面加载时不是全宽

jquery - 向数据表添加列

javascript - 是否可以将 e.target.property 转换为值并使用它来引用对象?

jQuery DataTable 溢出和文本换行问题

某些行上的 Jquery 数据表 Colspan

php - Codeigniter:如何使用 jQuery 添加带有复选框的列以进行多项选择和删除