jQuery Datatable - 来自ajax调用的错误消息

时间:2017-03-20 10:20:17

标签: javascript c# jquery ajax datatables

 "ajax": {
            "url": url,
            "type": "GET",
            "datatype": "json",
            "data": { id: id}
            //,
            //"success": function (data) {
            //    if (!data.data)
            //        ShowErrorMessage(data.message);
            //}
        },
        "columns": [
                { "data": "ID" },
                { "data": "Name" },
                { "data": "Time" }
        ],
        "columnDefs": [{
            "targets": 2,
            "data": "Time",
            "render": function (data) {
                return (ToJavaScriptDate(data));
            }
        }]
    });

在示例代码上方,它将使用ajax GET调用填充数据表。这里的问题是,有时我会返回一个有效的错误消息,而不是来自ajax响应的表数据。

因此,当data.data中存在数据时,我需要填充表,如果数据不存在,我需要将data.message填充为自定义错误消息。这里两个调用都是成功调用,但是是否显示表内容或错误消息取决于。

我尝试了“成功”属性,但我不确定当data.data中存在数据时如何手动绑定列

1 个答案:

答案 0 :(得分:1)

最好的方法是使用language.emptyTable选项。

但是,由于您希望使用来自Ajax响应的消息,因此有一种愚蠢的方法。

var table = $('#example').DataTable({
    ajax: {
       url: 'https://api.myjson.com/bins/if7vf',
       dataSrc: function(d){
          if(d.data.length === 0){
             var settings = $('#example').DataTable().settings()[0];
             settings.oLanguage.sEmptyTable = d.message;
          }

          return d.data;
       }
    }
});

请参阅this example以获取代码和演示。