MVC Kendo UI Grid - 扩展了所有行之后的调用函数

时间:2015-07-08 21:32:04

标签: asp.net-mvc user-interface kendo-ui grid

我正在使用ASP.NET MVC Kendo网格。 单击按钮,我需要展开所有行。 以下是相同的代码:

var row = $(this).closest("tr.k-master-row");
grid.data("kendoGrid").expandRow(row);

已定义此网格和网格。这很有效。

在扩展每一行时,将调用以下事件(对于每一行),因为绑定了详细信息模板:     .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方法,因为我不知道它需要多长时间或任何标志。

希望尽快找到答案。

谢谢!

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

不确定它是否在这里工作但它应该是这样的:

$.when(grid.data("kendoGrid").expandRow(row))
 .done(function () {
     //after completing expandRow event
 })
 .then(function() {
    //something else
});

同样,这可能根本不起作用,因为我不确定是否可以将kendoGrid事件视为延迟对象,但它值得一试。