有个var addModuleWin = new Ext.Window,closeAction: 'hide',里面有个ComboBox
- JScript code
var urlStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ' <%= path%>/module/prepareModule_getUrls',
method: 'POST'
}),
reader: new Ext.data.ArrayReader({},[
{name: 'value'},
{name: 'text'}
])
});
var urlComboBox = new Ext.form.ComboBox({
fieldLabel: '路径',
xtype: 'combo',
hiddenName: 'prapareModuleid',
emptyText: '请选择路径',
msgTarget: 'side',
allowBlank: false,
blankText: '路径不能为空',
triggerAction: "all",
displayField: 'text',
valueField: 'value',
editable : false,
store: urlStore,
mode: 'remote',
width: 230
});
当第一次加载addModuleWin的时候,urlComboBox 会显示值,然后关闭(隐藏)addModuleWin(closeAction: 'hide')
当前触发一个事件时
- JScript code
urlComboBox.store.reload(); addModuleWin.show();
当前urlComboBox 里面却是空白没有值,恶心的是偶尔运行的时候却有值,大概运行10次中会出现1次会刷新得到值
要怎么实现我要的刷新的功能
------解决方案--------------------
这可能是同步或异步的问题,你可以
var urlStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: '<%= path%>/module/prepareModule_getUrls',
method: 'POST'
}),
reader: new Ext.data.ArrayReader({},[
{name: 'value'},
{name: 'text'}
])
});
store.load();
var urlComboBox = new Ext.form.ComboBox({
fieldLabel: '路径',
xtype: 'combo',
hiddenName: 'prapareModuleid',
emptyText: '请选择路径',
msgTarget: 'side',
allowBlank: false,
blankText: '路径不能为空',
triggerAction: "all",
displayField: 'text',
valueField: 'value',
editable : false,
store: urlStore,
mode: 'remote',
width: 230
});
------解决方案--------------------
- CSS code
但ComboBox就是不显示重新加载的数据 在comboBox渲染之前,加载数据。 beforerender: function () {加载数据} 让combobox重新渲染下就应该有数据了
------解决方案--------------------
放在window的show回调中
win.show(null, function(){
urlComboBox.store.reload();
});
------解决方案--------------------
支持6楼的说法。
当win再次show的时候,如果combobox还没有渲染好,但这时数据已经请求了,是不会显示的,
尽量迟一点调用combobox的reload,比如在win的show,或render事件里试试。