Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在客户端数据表(jquery)上处理asp.net 3.5 JSON响应?_Asp.net_Json_Datatables - Fatal编程技术网

如何在客户端数据表(jquery)上处理asp.net 3.5 JSON响应?

如何在客户端数据表(jquery)上处理asp.net 3.5 JSON响应?,asp.net,json,datatables,Asp.net,Json,Datatables,我想用ASP.NET3.5和JSON中的AJAX加载datatables 我以前在ASP.Net 2.0和JSON中做过类似的工作,效果很好-主要原因是,在ASP.Net 3.5中,JSON响应中有一个下划线对象“d”,而在ASP.Net 2.0中没有 因此,在ASP.NET2.0中,我可以简单地调用我的ASP.Net站点,获得JSON响应,然后简单地将其添加到datatables上,就像原始JSON一样(并在对象中添加“数据”)。 在ASP.Net中,我不能简单地向我的JSON添加“Data:

我想用ASP.NET3.5和JSON中的AJAX加载datatables

我以前在ASP.Net 2.0和JSON中做过类似的工作,效果很好-主要原因是,在ASP.Net 3.5中,JSON响应中有一个下划线对象“d”,而在ASP.Net 2.0中没有

因此,在ASP.NET2.0中,我可以简单地调用我的ASP.Net站点,获得JSON响应,然后简单地将其添加到datatables上,就像原始JSON一样(并在对象中添加“数据”)。 在ASP.Net中,我不能简单地向我的JSON添加“Data:[Object]”,因为inbuild ASP.Net JSON解析器将像:{“d”:{“Data”:{Data HERE}}那样解析它。什么是datatables无法处理的

 $('#itemOverviewTable').dataTable({
        "processing": true,
        "bServerSide" : false,
        "ajax": 
            {
                url: "AjaxRequest.aspx/GetAllItems"
            },
        "columns": [
            { "data": "name" },
            { "data": "link" },
            { "data": "image" },
            { "data": "group" },
            { "data": "order" },
            { "data": "isVisible" }
        ]
    });

我读到: 但这只有在我可以控制客户端ajax调用时才有用,而在datatables库中我不能控制客户端ajax调用

有什么想法吗?

我找到了一个解决方案:

    $('#itemOverviewTable').dataTable({
        "processing": true,
        "dom": "frtip",
        "sAjaxSource": "AjaxRequest.aspx/GetAllItems",
        "fnServerData": dataTableASP35AJAXConverter,
        "columns": [
            { "data": "Name" },
            { "data": "Link" },
            { "data": "Image" },
            { "data": "Group" },
            { "data": "Order" },
            { "data": "IsVisible" }
        ]
    });
}

function dataTableASP35AJAXConverter(sSource, aoData, fnCallback) {
    $.ajax({
        "dataType": 'json',
        "contentType": "application/json; charset=utf-8",
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "success":
                    function (msg) {
                        var json = jQuery.parseJSON('{"data" : ' + msg.d + '}');
                        fnCallback(json);
                    },
        "error":
            function (msg) {
                alert(msg);
            }
    })
}
JSON看起来怎么样?(一个小例子)
    $('#itemOverviewTable').dataTable({
        "processing": true,
        "dom": "frtip",
        "sAjaxSource": "AjaxRequest.aspx/GetAllItems",
        "fnServerData": dataTableASP35AJAXConverter,
        "columns": [
            { "data": "Name" },
            { "data": "Link" },
            { "data": "Image" },
            { "data": "Group" },
            { "data": "Order" },
            { "data": "IsVisible" }
        ]
    });
}

function dataTableASP35AJAXConverter(sSource, aoData, fnCallback) {
    $.ajax({
        "dataType": 'json',
        "contentType": "application/json; charset=utf-8",
        "type": "POST",
        "url": sSource,
        "data": aoData,
        "success":
                    function (msg) {
                        var json = jQuery.parseJSON('{"data" : ' + msg.d + '}');
                        fnCallback(json);
                    },
        "error":
            function (msg) {
                alert(msg);
            }
    })
}