Dojo Dgrid 0.4和dstore:在没有put请求的情况下更新UI中的行
在Dgrid 0.3.16中,我使用了一个可观察的存储,当存储中的数据发生更改时,我调用了存储通知函数。不是“放”,因为我只需要一个UI更新,这是一个特定的情况Dojo Dgrid 0.4和dstore:在没有put请求的情况下更新UI中的行,dojo,dgrid,dstore,Dojo,Dgrid,Dstore,在Dgrid 0.3.16中,我使用了一个可观察的存储,当存储中的数据发生更改时,我调用了存储通知函数。不是“放”,因为我只需要一个UI更新,这是一个特定的情况 store.notify(object, existingId); 我现在已经将Dgrid升级到0.4版,并使用“dstore”作为存储。存储的创建方式如下: var store = new declare([ Rest, SimpleQuery, Trackable, Cache, TreeStore ])(lang
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来重新渲染行。d存储遵循一个模型,该模型更类似于使用on和emit方法的典型事件驱动方法。dstore支持添加、更新和删除事件-前两个预期对象具有引用该项的目标属性;delete事件需要一个id属性引用项标识的对象 因此,要通知更新的项目,请调用store.emit'update',{target:updateItem}
emit方法记录在中,事件类型在中进一步列举。d存储遵循一个模型,该模型更类似于具有on和emit方法的典型事件驱动方法。dstore支持添加、更新和删除事件-前两个预期对象具有引用该项的目标属性;delete事件需要一个id属性引用项标识的对象 因此,要通知更新的项目,请调用store.emit'update',{target:updateItem}
emit方法记录在下,事件类型在中进一步列举。谢谢,这是有效的,但是当我的项目是父目录树中的子项目时,项目会更新到错误的位置。它将移动到当前树父级的第一个子级之前。如何保持更新项目的当前位置?应该可以保持顺序-例如,在中编辑和保存子项目。如果您能提供有关您的具体案例的更多详细信息,例如您正在使用的存储模块,那么可以就此提出另一个问题。我删除了以前的评论。问题是我在我的商店里使用了这些混音:Rest、Trackable、TreeStore、simplecury。一旦我删除了SimpleQuery,所有在存储后正确恢复到原始位置的项目。发出“更新”。。。目前我不需要SimpleQuery,但我真的不知道为什么会发生这种情况。谢谢,这是可行的,但当我的项目是父目录树中的子项目时,项目会更新到错误的位置。它将移动到当前树父级的第一个子级之前。如何保持更新项目的当前位置?应该可以保持顺序-例如,在中编辑和保存子项目。如果您能提供有关您的具体案例的更多详细信息,例如您正在使用的存储模块,那么可以就此提出另一个问题。我删除了以前的评论。问题是我在我的商店里使用了这些混音:Rest、Trackable、TreeStore、simplecury。一旦我删除了SimpleQuery,所有在存储后正确恢复到原始位置的项目。发出“更新”。。。目前我不需要简单,但为什么会发生这种情况,我真的不知道。