带有Observable MVVM的KendoUI网格弹出编辑后自动选择行

时间:2013-04-25 02:52:14

标签: javascript jquery kendo-ui kendo-grid

我正在使用带有MVVM(observables)的Kendo UI网格。我在创建或编辑它后尝试自动选择一行。在“保存”事件之后发生了一些事情,这是对网格选择方法的调用。我的解决方法是一个明显的黑客(但现在有效),通过设置100毫秒的超时来让所有事件等完成。剑道文档似乎没有提到“保存”之后的事件(如“已保存”方法或某些此类)。有一些这样的动物吗?你能想到一个更好的方法吗(我可以附上一个回调的地方会让我更开心):

...
testRequestEdited: function(e) {
    var uid = e.model.uid;
    console.log(testRequestGrid.tbody.find(">tr[data-uid='"+uid+"']"));
    // some event happens after "save" that clobbers the select
    // this timeout is not the right way, but I will try it for now.
    setTimeout(function() {
        testRequestGrid.select(testRequestGrid.tbody.find(">tr[data-uid='"+uid+"']"));
    }, 100);
},
...

1 个答案:

答案 0 :(得分:0)

添加新行触发的事件: dataBinding(在添加新行之前),dataBound(添加新行时),然后新行进入编辑状态,立即触发edit事件(从此点开始)表现为正常编辑)。然后,当对dataSource进行任何更改时,将触发save事件,并且这些事件都是网格事件。

但是,save之后还会发生一个dataSource事件 - change。 您可以在网格初始化后绑定到它

$('#grid').data('kendoGrid').dataSource.bind("change",function(e)
  { 
    if(e.action=="itemchange")
    {
      console.log(e)
      //do your stuff
    }
   });

e:dataSource的change是链中的最后一个事件。