Javascript Dojo-如何使用更新的ItemFileReadStore数据刷新组合框
我在Dojo中更改了combobox的ItemFileReadStore。 我的代码看起来像Javascript Dojo-如何使用更新的ItemFileReadStore数据刷新组合框,javascript,html,ajax,dojo,Javascript,Html,Ajax,Dojo,我在Dojo中更改了combobox的ItemFileReadStore。 我的代码看起来像 <span dojoType="dojo.data.ItemFileReadStore" jsId="comboStore" data="transformData"> <select dojoType="mywidget.DropDown" id="transformCombo" valu
<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 combobox小部件。我更改了transformData,但在再次完全重新加载页面之前,组合框不会更新。有什么想法吗?如何刷新ItemFileReadStore?ItemFileReadStore—它是只读数据存储。在您的情况下,应该使用ItemFileWriteStore。看这个问题。我想这就是您要寻找的内容。如果内容正在更改服务器端,并且您只想刷新本地副本而不重新加载页面,则可以在存储中调用
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()
可用于刷新数据网格,作为grid的替代方案。_refresh()
(谁的行为可能会随着时间的推移而改变)请注意,如果连接了dnd管理器,则关闭存储不会对dnd产生气泡。我们需要拆除dnd并在“刷新”后重建