gpt4 book ai didi

dojo - 如何确定 dgrid 是否已完成从商店加载数据

转载 作者:行者123 更新时间:2023-12-01 00:22:33 24 4
gpt4 key购买 nike

有谁知道我怎样才能知道 dgrid 是否已经完成从商店加载数据?

我一直在尝试在 dgrid 的 OnDemandList.js 中找到一种方法来执行此操作,但不幸的是,它超出了我目前对 dojo 的了解。

谢谢

最佳答案

我不久前为 dgrid v0.3.0 提出了这个解决方案,但查看源代码似乎到目前为止没有任何变化,所以我将尝试调整我的解决方案以适应 v0.3.3。

查看实际效果:http://jsfiddle.net/phusick/FkANy/

问题是 dgrid/_StoreMixin::_trackError 在返回 Deferred::when 时没有定义 success 回调,因此你需要覆盖该方法,定义成功回调并在那里触发刷新事件。

_RefreshMixin 模块:

define(["dojo/_base/declare", "dojo/_base/lang", "dojo/_base/Deferred", "dojo/on"], function(declare, lang, Deferred, listen) {

function emitError(err){
if(typeof err !== "object"){
err = new Error(err);
}
err.grid = this;

if(listen.emit(this.domNode, "dgrid-error", {
grid: this,
error: err,
cancelable: true,
bubbles: true })){
console.error(err);
}
}

var _RefreshMixin = declare(null, {

_trackError: function(func){
var result;

if(typeof func == "string"){ func = lang.hitch(this, func); }

try{
result = func();
}catch(err){
emitError.call(this, err);
}
return Deferred.when(
result,
// success callback instead of `null` in _StoreMixin:
lang.hitch(this, function() {
// fire 'refresh' event
listen.emit(this.domNode, "refresh", {
cancelable: true,
bubbles: true
});
}),
lang.hitch(this, emitError)
);
}
});

return _RefreshMixin;

});

声明您自己的网格类并实例化它:

var MyGrid = declare([OnDemandGrid, _RefreshMixin]);
var grid = new MyGrid({ /* params here*/ });

现在你可以监听刷新事件了:

grid.on("refresh", function(event) {
// your handler
});

关于dojo - 如何确定 dgrid 是否已完成从商店加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com