0

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

...
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);
},
...
4

1 回答 1

0

添加新行触发的事件:( 在添加新行dataBinding之前),dataBound(添加新行时),然后新行进入编辑状态,立即触发edit事件(从此时起它的行为与正常编辑一样)。然后save当对数据源进行任何更改时触发该事件,这都是网格事件。

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

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

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

于 2013-04-25T18:30:59.647 回答