我正在构建一个使用datatables网格的asp.net mvc应用程序。我显示网格。在网格上我添加了一个rowclick事件:
function CreateRowClickHandler() {
var table = $('#table').dataTable();
$("#table > tbody").on('click', 'tr', function(e) {
e.preventDefault();
var index = $('#table').data('id-index');
var id = table.fnGetData($(this)[0])[index];
var url = $('#table').data('rowclick-url');
url += "/" + id;
$().loadPartial(url);
});
}
loadpartial函数加载mvc操作:
$.fn.loadPartial = function (url, callback) {
var container = ($(this).length == 0) ? ($("#jqcontainer")) : ($(this));
container.load(url, function (responseText, textStatus, XMLHttpRequest) {
if (XMLHttpRequest.status == 403) {
$('body').notifyBox({
message: 'Unauthorized access! Call support for help!'
});
}
if (XMLHttpRequest.status == 500) {
$('body').notifyBox({
message: 'The process failed for unknown reasons! Call support for help!'
});
}
if ($.isFunction(callback)) callback(responseText, textStatus, XMLHttpRequest);
});
};
当我进入chrome调试器时,当我第一次加载页面时,我可以调用:
$('#table').dataTable().fnReloadAjax();
这可以根据需要重复多次。它从服务器重新加载数据。当我点击其中一行时,在我用以下代码关闭模态窗口之后:
$('#partialview').dialog("close");
在chrome调试器中,fnreloadajax给出了以下错误:
TypeError: Object [object Object] has no method 'fnReloadAjax'
模型窗口关闭后,对象看起来不再是DataTables网格,但我无法弄清楚为什么会发生这种情况。谁能给我一些提示?
答案 0 :(得分:0)
我退回了整个页面。这导致加载了jquery的新副本。 Wirey帮助我解决了这个问题。从控制器返回部分视图后,问题就解决了。