我在Dojo中为combobox更改了ItemFileReadStore。 我的代码看起来像
<span dojoType="dojo.data.ItemFileReadStore"
jsId="comboStore"
data="transformData">
<select dojoType="mywidget.DropDown" id="transformCombo" value="" store="comboStore" searchAttr="name" name="state" maxHeight="100"/>
我的小部件类似于dojo组合框小部件。我更改了transformData,但直到页面再次完全重新加载才更新组合框。有什么想法吗?
答案 0 :(得分:3)
如果内容正在更改服务器端,并且您只想刷新本地副本而不重新加载页面,则可以在商店中调用fetch
并在收到新数据时更新组件。
这是我用来在服务器端内容更新时刷新dojox.grid.DataGrid的代码:
// initialise store and link to DataGrid
var store = new dojo.data.ItemFileReadStore({
url: "items.json",
clearOnClose: true,
urlPreventCache: true
});
var grid = dijit.byId("grid")
grid.setStore(store);
// code to update local copy
store.close();
store.fetch({
onComplete: function(items, request) {
grid._refresh();
}
});
如果要修改数据客户端,则应该像Andrei建议的那样使用ItemFileWriteStore。
编辑:
grid.sort()
可用于刷新DataGrid,以替代grid._refresh()
(其行为可能随时间而变化)
答案 1 :(得分:0)
如何刷新ItemFileReadStore? ItemFileReadStore - 它是只读数据存储区。在您的情况下,您应该使用ItemFileWriteStore。看看这个问题“dijit.form.filteringselect dynamically change options”。我认为这就是你要找的东西。