我正在研究一种在我的应用中处理Kendo网格的AJAX错误的常用方法。作为js函数的一部分,我正在显示错误,然后取消网格的更改。获得网格ID的方法必须比我在下面做的更好 - 这对我来说就像是一个黑客(尽管它在我的测试中确实有效)。有没有人有更好的方法来解决这个问题?
// common kendo grid ajax error handler
function kendoGridAjaxErrorHandler(result) {
var msg = result.xhr.status + ' ' + result.xhr.statusText + '\n' + result.xhr.responseText;
alert(msg);
var id = result.sender.options.table[0].parentNode.parentNode.id;
$('#' + id).data('kendoGrid').cancelChanges();
};
答案 0 :(得分:1)
错误事件由DataSource而不是网格公开。因此,您无法在错误处理程序中获取网格本身。如果可能,您可以尝试根据某些数据源选项区分网格,例如读取网址:
function kendoGridAjaxErrorHandler(result) {
var dataSource = this;
var read = dataSource.options.transport.read.url;
if (readUrl == "/Customers/Read") {
// the customers grid
} else {
// other grid
}
}
答案 1 :(得分:1)
我遇到了同样的问题,但在花了半个小时后我找到了解决方案。
您可以通过此
获取网格元素IDe.sender.options.table.parent('div')[0].id
答案 2 :(得分:0)
您是否尝试过类似$(result.sender.element).attr("id");
的内容?