在Kendo网格中,我想知道编辑中的哪一行。这就是在提交网格中的网格更改之前(因为我在这里进行验证)。在这里我有一个问题,即调用了多个函数,因此我没有第一个函数中出现的事件。如下所示,我在数据中获得多行,我想知道哪一行已更新。我正在使用Kendo的Inline模式。
function updateRow(event) {
debugger
$("#errorPaymentDue").hide();
grid = $("#gridSupplierPaymentDue").data("kendoGrid");
var index = $(event).closest("tr").index();
...
myfunction1();
//myfunctionN is call inside many function written inside myfunction1
}
function myfunctionN(){
var gridValidation = $("#gridSupplierPaymentDue").data("kendoGrid");
var data = gridValidation.dataSource.data();
//want to know which row was edited without event
}
我知道我可以将特定编辑行的索引从函数发送到函数,但这会有多个函数更改,也可能需要更改可能引用此函数的其他代码。
答案 0 :(得分:1)
您可以获取以这种方式更新的行:
function myfunctionN() {
var gridValidation = $("#gridSupplierPaymentDue").data("kendoGrid");
var data = gridValidation.dataSource.data();
//want to know which row was edited without event
//edited data items
var editedItems = $(data).filter(function() {
return this.dirty;
});
//edited rows
var editedRows = $(gridValidation.tbody).find("tr").filter(function() {
return gridValidation.dataSource.getByUid($(this).data("uid")).dirty;
});
}
OR
要获取当前正在编辑的行,您可以执行以下操作:
var rowInEditMode = $("#gridSupplierPaymentDue").find("tr.k-grid-edit-row");
var itemBeingEdited = $("#gridSupplierPaymentDue").data("kendoGrid").dataSource.getByUid(rowInEditMode.data("uid"));