尝试添加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的成功或失败回调,但我不想这样做。
除了上面提到的两个解决方案之外,有什么方法我可以知道销毁操作何时完成?
答案 0 :(得分:2)
使用requestStart
,sync
,requestEnd
显示和隐藏一个微调器是不明智的。这样,您必须编写代码以在每个数据源中显示和隐藏微调器。如果显示/隐藏的代码发生了变化,会发生什么?
更好的想法是定义一个全局处理程序,在第一次请求后显示微调器,并在最后一次响应后隐藏微调器。 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);
}
}