1

我正在研究一种通用方法来处理我的应用程序中剑道网格的 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();
};
4

3 回答 3

1

错误事件由 DataSource 而不是网格公开。因此,您无法在错误处理程序中获取网格本身。如果可能的话,您可以尝试根据某些数据源选项来区分网格,例如读取 URL:

function kendoGridAjaxErrorHandler(result) {
    var dataSource = this;
    var read = dataSource.options.transport.read.url;
    if (readUrl == "/Customers/Read") {
       // the customers grid
    } else {
       // other grid
    }
}
于 2013-09-05T07:08:33.273 回答
1

我遇到了同样的问题,但花了半个小时后我找到了解决方案。

您可以通过此获取网格元素 ID

e.sender.options.table.parent('div')[0].id
于 2013-10-16T07:58:28.897 回答
0

你试过类似的东西$(result.sender.element).attr("id");吗?

于 2013-08-27T12:46:02.337 回答