1

在 Dgrid 0.3.16 中,我使用的是 Observable 存储,当我在存储中的数据发生更改时,我调用了存储通知函数。(不是“放置”,因为我只需要 UI 更新,这是一个特定情况)

store.notify(object, existingId);

我现在已经将 Dgrid 升级到 0.4 版,并且我使用 'dstore' 作为商店。商店是这样创建的:

        var store = new declare([ Rest, SimpleQuery, Trackable, Cache, TreeStore ])(lang.mixin({
            target:"/ac/api?fetchview",
            idProperty:"$uniqueid", 
            useRangeHeaders: true
        }, config));

        store.getRootCollection = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.getChildren = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.mayHaveChildren = function (item) {
            return item.$iscategory;
        };

        this.collection = store;

如何在更改一行而不调用“放置”时通知商店?我需要 dGrid 重新渲染该行。

4

1 回答 1

5

dstore 遵循一个更类似于典型的事件驱动方法的模型onemit方法。dstore 支持add,updatedeleteevents - 前两个期望一个具有target引用该项目的属性的对象;该delete事件需要一个具有id引用项目标识的属性的对象。

因此,要通知更新的项目,请致电store.emit('update', { target: updatedItem }).

emit方法记录在Store methods下,事件的类型在Collection 文档中进一步列举。

于 2015-03-27T10:29:50.873 回答