Jquery 多个数据表能否从同一url获取数据?
是否可能在一个视图中有两个指向同一Ajax 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
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();
});
谢谢你的回复,这正是我所需要的。