Jquery 多个数据表能否从同一url获取数据?

Jquery 多个数据表能否从同一url获取数据?,jquery,datatables,Jquery,Datatables,是否可能在一个视图中有两个指向同一Ajax url的数据表?目前,我不得不将其分为两个不同的调用,但我希望通过一个调用获取数据 我目前的电话情况: var table1; var table2; if (!$.fn.DataTable.fnIsDataTable('#table1')) { table1 = $("#table1").DataTable({ "iDisplayLength": 4, "dom": "ftp", "ajax

是否可能在一个视图中有两个指向同一Ajax url的数据表?目前,我不得不将其分为两个不同的调用,但我希望通过一个调用获取数据

我目前的电话情况:

var table1;
var table2;

if (!$.fn.DataTable.fnIsDataTable('#table1')) {
     table1 = $("#table1").DataTable({
        "iDisplayLength": 4,
        "dom": "ftp",
        "ajax": {
            "url": "@Html.Raw(@Url.Action("Action1", "Controller", new { @id = @Model.ID}))",
            "dataSrc": "list1"
        },..});


if (!$.fn.DataTable.fnIsDataTable('#table2')) {
     table2 = $("#table2").DataTable({
        "iDisplayLength": 4,
        "dom": "ftp",
        "ajax": {
            "url": "@Html.Raw(@Url.Action("Action2", "Controller", new { @id = @Model.ID}))",
            "dataSrc": "list2"
        },..});
但是我希望ajax URL只是一个调用,并从返回的数据中选择dataSrc

有点像这样(伪代码):

这可能吗?还有其他选择吗


编辑:

对于像我这样的人来说,他们喜欢ajax调用中的“尝试获取数据”和“未找到数据”消息

首先在sEmptyTable中设置默认消息

"oLanguage": {
    "sEmptyTable": "Looking for records, please wait."
},
在getJson调用中,当表返回空时,操纵该字符串以显示新消息

$.getJSON("@Html.Raw(@Url.Action("Action1", "Controller", new {id = @Model.ID}))", function (json) {
    if (json.list1.length > 0) { table1.rows.add(json.list1).draw(); }

    if (json.list2.length > 0) { table2.rows.add(json.list2).draw(); }

    if (json.list1.length == 0) {
            table1.context[0].oLanguage.sEmptyTable = "No records found.";
            table1.draw();
        }

    if (json.list2.length == 0) {
            table2.context[0].oLanguage.sEmptyTable = "No records found.";
            table2.draw();
        }
});

您可以对两个表使用相同的URL,如下所示,请参阅以进行演示

var table1 = $('#example1').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu'
});

var table2 = $('#example2').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu'
});  
var table1 = $('#example1').DataTable();    
var table2 = $('#example2').DataTable();  

$.getJSON('https://api.myjson.com/bins/qgcu', function(json){
   table1.rows.add(json.data).draw();
   table2.rows.add(json.data).draw();        
});
但是,为了避免发出两个请求,更好的方法是一次获取数据,然后将其添加到相应的表中,如下所示,请参见演示

var table1 = $('#example1').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu'
});

var table2 = $('#example2').DataTable({
    ajax: 'https://api.myjson.com/bins/qgcu'
});  
var table1 = $('#example1').DataTable();    
var table2 = $('#example2').DataTable();  

$.getJSON('https://api.myjson.com/bins/qgcu', function(json){
   table1.rows.add(json.data).draw();
   table2.rows.add(json.data).draw();        
});

谢谢你的回复,这正是我所需要的。