我正在使用带有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);
},
...
答案 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
是链中的最后一个事件。