Dojo 如何确定dgrid是否已完成从存储加载数据

Dojo 如何确定dgrid是否已完成从存储加载数据,dojo,dgrid,Dojo,Dgrid,有人知道我怎样才能知道dgrid是否已完成从存储加载数据 我一直试图在dgrid的OnDemandList.js中找到一种方法来实现这一点,但不幸的是,这超出了我目前对dojo的了解 感谢我不久前为dgrid v0.3.0提出了这个解决方案,但从源代码看,到目前为止似乎没有任何变化,因此我将尝试将我的解决方案应用于v0.3.3 在行动中看到它: 问题是,dgrid/\u StoreMixin::\u trackError在返回Deferred::when时没有定义成功回调,因此需要重写该方法,定

有人知道我怎样才能知道dgrid是否已完成从存储加载数据

我一直试图在dgrid的OnDemandList.js中找到一种方法来实现这一点,但不幸的是,这超出了我目前对dojo的了解


感谢

我不久前为
dgrid v0.3.0
提出了这个解决方案,但从源代码看,到目前为止似乎没有任何变化,因此我将尝试将我的解决方案应用于v0.3.3

在行动中看到它:

问题是,
dgrid/\u StoreMixin::\u trackError
在返回
Deferred::when
时没有定义成功回调,因此需要重写该方法,定义成功回调并在那里触发刷新事件

\u 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*/ });
现在,您可以收听刷新事件:


dgrid 0.3.5上,您可以收听
dgrid refresh complete
事件,该事件在结果完成渲染时发出


OnDemandList/Grid wiki页面:

Thatnks,这正是我想要的。非常好的模块化解决方案。不得不说,你似乎是这里唯一一个愿意谈论德格丽德的人:)好吧,这件事花了我一年前的时间,所以不跟大家分享会很遗憾;)
grid.on("refresh", function(event) {
    // your handler
});