我正在使用ASP。。NET MVC剑道网格。在单击按钮时,我需要展开所有行。下面是相同的代码:
var row = $(this).closest("tr.k-master-row");
grid.data("kendoGrid").expandRow(row);
这里已经定义了this和grid。
在展开每行时,将调用以下事件(针对每行),因为绑定了详细模板:.Events(events => events. databound ("onInnerGridDataBound"))
function onInnerGridDataBound(e) {
//Do something here
}
我的要求是,在我启动调用展开所有行之后,我在代码中有几行,只有在所有行都被展开之后才应该执行。
function expandAll()
{
var row = $(this).closest("tr.k-master-row"); //Step1
grid.data("kendoGrid").expandRow(row);"); //Step2
//Do something after the onInnerGridDataBound event is called for
every expanded row.
..................................
//Ideally should be step 4 to be executed, but executes immediately
//after step2
}
//Ideally Step 3 to execute, but executes last
function onInnerGridDataBound(e) {
//Do something here
}
我想避免使用setTimeout方法,因为我不知道它需要多长时间或任何标志。
希望尽快找到答案。
谢谢!
你试过吗?
不确定它是否在这里工作,但它应该是这样的:
$.when(grid.data("kendoGrid").expandRow(row))
.done(function () {
//after completing expandRow event
})
.then(function() {
//something else
});
同样,这可能根本不起作用,因为我不确定kendoGrid事件是否可以被视为延迟对象,但值得一试。