javascript - 如何在 Kendo 网格中没有事件的情况下知道哪一行处于编辑模式

标签 javascript jquery kendo-ui kendo-asp.net-mvc

在 Kendo 网格中,我想知道编辑的是哪一行。这是在网格中的网格更改被提交之前(因为我在这里进行验证)。在这里我有一个问题,多个函数被调用所以我没有第一个函数中存在的事件。如下所示,我得到了多行数据,我想从中知道哪一行被更新了。我正在使用 Kendo 的内联模式。

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
}

我知道我可以将特定编辑行的索引从函数发送到函数,但这将有多个函数更改,而且可能引用此函数的其他代码也可能需要更改。

最佳答案

您可以通过这种方式获取已更新的行:

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;
   });
}

要获取当前正在编辑的行,您可以执行以下操作:

var rowInEditMode = $("#gridSupplierPaymentDue").find("tr.k-grid-edit-row");
var itemBeingEdited = $("#gridSupplierPaymentDue").data("kendoGrid").dataSource.getByUid(rowInEditMode.data("uid"));

关于javascript - 如何在 Kendo 网格中没有事件的情况下知道哪一行处于编辑模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674087/

相关文章:

javascript - 如何编写JS函数从字符串中删除某些符号数组

javascript - Phantomjs/Casperjs 从页面内的 JS 脚本获取 url

javascript - javascript 和 HTML 是不可能分开的吗?

jquery - 如何让jQuery对话框弹出窗口停留在浏览器中央(具体情况)

javascript - 异步等待图像加载事件触发器

jquery - 如何制作像输入类型单选按钮一样工作的 div html 标签?

javascript - 在新菜单打开之前关闭页面上的其他菜单

kendo-ui - Kendo ui 网格客户端模板 "Id is not defined"

javascript - 输入上的 keyup 事件在页面加载时触发

angularjs - Kendo UI 指令要求 jQuery 在 AngularJS 之前可用。请在文档中的 angular 之前包含 jquery