【发布时间】:2015-07-24 09:56:35
【问题描述】:
我正在使用 asp.net mvc 处理 jQuery 数据表,我有数千行可以使数据表在大约 3-5 秒内进行分页。
我想要的是显示一个对话框,显示该表当前正在处理分页。
我现在要做的是使用带有 ajax 的局部视图显示一个对话框。 但问题是在数据表完成工作后才显示对话框。有什么办法可以让数据表在显示对话框时继续分页,然后关闭对话框?
这是我正在做的一些sn-ps:
$("#runButton").click(function() {
var url = '@Url.Action("Loading")';
$.get(url, function (data) {
//Start of Dialog
$.Dialog({
sysButtons: { btnClose: false },
overlay: true,
shadow: true,
padding: 10,
height: 75,
width: 300,
flat: true,
onShow: function (_dialog) {
$.Dialog.title("Test Dialog");
$.Dialog.content(data);
$.Metro.initAll();
}
});
})
showTable();
})
function showTable() {
var table = $('#dataTable').DataTable({
"deferRender": true,
"columnDefs": [
{ "visible": false, "targets": 2 }
],
"order": [[2, 'asc']],
"drawCallback": function (settings) {
var api = this.api();
var rows = api.rows({ page: 'current' }).nodes();
var last = null;
api.column(2, { page: 'current' }).data().each(function (group, i) {
if (last !== group) {
$(rows).eq(i).before(
'<tr class="group"><td colspan="5" bgcolor="#C0C0C0">' + group + '</td></tr>'
);
last = group;
}
});
}
});
}
--编辑--
我正在做一些故障排除,我尝试使用简单对话框并将表的初始化放在对话框函数中:
$("#runButton").click(function() {
("#dialog").dialog({
open: function () {
showTable();
}
});
});
还是同样的问题,数据表在完成后仍然首先运行,这就是对话框出现的时间。我需要做什么才能让对话框首先出现,然后让数据表完成其工作并关闭对话框。请帮忙,谢谢!
【问题讨论】:
-
什么初始化对话框?
-
请看我的编辑。谢谢。
-
您是否尝试在您拥有的第一个
click函数中组合它?您不希望同一个 div 有两个click函数。("#dialog").dialog({ open: function () { showTable(); }
标签: jquery ajax asp.net-mvc datatables partial-views