kendo ui requestEnd永远不会被调用

时间:2014-05-09 01:44:56

标签: kendo-ui kendo-progressbar

尝试添加spinner(kendo.ui.progress)来显示正在进行的crud操作,在save事件中创建start spinner并在数据绑定中结束但是对于remove(destroy)start in remove事件,但是没有办法告诉当毁灭完成。有事件requestEnd但它永远不会被调用 - 可能它在旧版本的kendo ui中不受支持。

还有一种方法是在destroy操作中定义ajax函数,比如destroy:function(options){$。ajax ...}以及ajax stop spinner的成功或失败回调,但我不想这样做。

除了上面提到的两个解决方案之外,有什么方法我可以知道销毁操作何时完成?

2 个答案:

答案 0 :(得分:2)

使用requestStartsyncrequestEnd 显示隐藏一个微调器是不明智的。这样,您必须编写代码以在每个数据源中显示和隐藏微调器。如果显示/隐藏的代码发生了变化,会发生什么?

更好的想法是定义一个全局处理程序,在第一次请求后显示微调器,并在最后一次响应后隐藏微调器。 Global Ajax Event Handlers在这种情况下最好。

.ajaxStart() Register a handler to be called when the first Ajax request begins.

.ajaxStop() Register a handler to be called when all Ajax requests have completed.


示例:

$( document ).ajaxStart(function() {
    kendo.ui.progress($("#app"), true);
});
//----------------------------------------------
$( document ).ajaxStop(function() {
    kendo.ui.progress($("#app"), false);
});

答案 1 :(得分:0)

您可以使用sync事件。在数据源保存数据项更改后触发。 http://docs.telerik.com/kendo-ui/api/framework/datasource#events-sync

dataSource    : {
   transport   : {
     read: {
         url:...
     }
   },

   sync: function () {
      kendo.ui.progress($("#loading"), false);

   }
}