努力绑定JSON数据-JQuery数据表

时间:2018-09-28 11:16:43

标签: json datatables

我正在努力将JSON数据绑定到数据表中。这是我的Javascript代码。

$.ajax({
        type: "POST",
        data: $('#searchForm').serialize(),
        url: "/ReportingItem/Search",
        success: function (data) {
            $('#searchResults').DataTable({
                data: data,
                dataSrc: "",
                columns: [
                    { "data": "ID" },
                    { "data": "ItemContent" }
                ]
            });
        },
        error: function (xhr, ajaxOptions, thrownError) {
            if (xhr.status == 404) {
                alert(thrownError);
            }
        }

    });

这是我的JSON

 "[{"ID":"3","ItemContent":"2nd Test"},{"ID":"4","ItemContent":"3rd Test"},{"ID":"9","ItemContent":"eeeeee"},{"ID":"11","ItemContent":"aaaa"}]"

您可以看到其平面阵列。因此我使用了dataSRC =“”,因此它不在JSON中查找“ data”

这是我收到的错误消息

  

DataTables警告:表格ID = searchResults-请求的未知   第0行第0列的参数“ ID”。有关此的更多信息   错误,请参阅http://datatables.net/tn/4

任何有关语法的帮助都会有所帮助!

谢谢

克里斯

2 个答案:

答案 0 :(得分:0)

只需添加数据行

$('#searchResults').DataTable({
      data: JSON.parse(data),
       ....
});
  

JSON.parse

答案 1 :(得分:0)

只需要检查ReportingItem / Search中返回的json对象。 如您所述:

"[{"ID":"3","ItemContent":"2nd Test"},{"ID":"4","ItemContent":"3rd Test"},{"ID":"9","ItemContent":"eeeeee"},{"ID":"11","ItemContent":"aaaa"}]"

在大多数情况下,json格式是骆驼符号格式。这意味着对象名称以小写字母开头。因此,您应该在WebApiConfig中进行一些更改,或者如果在设置的配置中不是api,请进行以下更改:ReportingItem / Search 将此添加到方法Register中:

using System.Web.Mvc;
using System.Web.Routing;
public static void Register(HttpConfiguration config)
            {
 var Settings = config.Formatters.JsonFormatter.SerializerSettings;
            Settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            Settings.Formatting = Formatting.Indented;
//... other codes
}

最后而不是

columns: [
                    { "data": "ID" },
                    { "data": "ItemContent" }
]

使用此:

columns: [
                        { "data": "iD" },
                        { "data": "itemContent" }
    ]

希望完成。