Использование sAjaxSource работает, но установка myald aaData не - PullRequest
1 голос
/ 01 ноября 2011

Когда я использую 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", ....

Я что-то упустил или неправильно форматировал ответ (сейчас я проверял несколько раз ...)

1 Ответ

3 голосов
/ 02 ноября 2011

Почему важно сделать это вторым способом?Если вам нужен доступ ко всему, что может предложить .ajax (больше гибкости в переменных по сравнению со стандартным .getJSON), вы все равно можете сделать это с параметром fnServerData.что вы пытаетесь использовать «данные» напрямую.Сначала его нужно проанализировать.

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

отказ от ответственности: я не проверял это и предпочитаю метод fnServerData

...