Kendo Grid Ajax错误处理 - 获取网格元素ID

时间:2013-08-12 17:50:41

标签: jquery ajax kendo-ui kendo-grid

我正在研究一种在我的应用中处理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();
};

3 个答案:

答案 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)

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

您可以通过此

获取网格元素ID
e.sender.options.table.parent('div')[0].id

答案 2 :(得分:0)

您是否尝试过类似$(result.sender.element).attr("id");的内容?