在Dgrid 0.3.16中我使用的是Observable商店,当我在商店中的数据发生变化时,我调用了商店通知功能。 (不是'put',因为我只需要一个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;
如果更改了一行而未调用“put”,如何通知商店?我需要dGrid重新渲染行。
答案 0 :(得分:5)
dstore遵循的模型更类似于使用on
和emit
方法的典型事件驱动方法。 dstore支持add
,update
和delete
个事件 - 前两个事件期望一个具有target
属性的对象引用该项; delete
事件期望具有id
属性的对象引用该项的标识。
因此,要通知更新的项目,请致电store.emit('update', { target: updatedItem })
。
Store methods下记录了emit
方法,并在Collection documentation中进一步枚举了事件类型。