在触发单击 Extjs 3.4 时重新加载 ComboBox 存储
Posted
技术标签:
【中文标题】在触发单击 Extjs 3.4 时重新加载 ComboBox 存储【英文标题】:Reload a ComboBox store on trigger click Extjs 3.4 【发布时间】:2015-05-09 12:44:56 【问题描述】:我是js
和ExtJS 3.4 的初学者,我正在尝试在Ext.window 中使用Ext.form.ComboBox
来显示js
对象(层)的列表。
问题是当我第一次创建窗口并单击combobox
触发器时,我得到了正确的图层列表,但是当我删除或添加图层并再次单击触发器时,商店不会更新,我找到了相同的列表。
你能帮我找到解决这个问题的方法吗,例如当我点击触发器时,它会更新并加载新的列表存储?
欢迎提出任何建议。
代码片段
// The "ImageField" is an item witch is called on the return of the methode "createWindow" ...
createWindow: function()
ImageField = new Ext.form.ComboBox(Ext.apply(
name: "Image_ref",
fieldLabel: "Image Input (Required)",
emptyText: "Select your Image",
xtype: 'combo',
forceSelection: true,
editable: true,
allowBlank: true,
triggerAction: 'all',
mode: 'local',
valueField: 'value',
displayField: 'text',
labelWidth: 300
width: 250,
id: 'myCombo',
hideLabel: false,
lazyRender: false,
lazyInit: false,
mode: 'local',
triggerAction: 'all',
store: new Ext.data.SimpleStore(
autoLoad: true,
autoDestroy: true,
fields: ['text', 'value'],
data: layer_liste_WCS // is a liste of js objects
),
listeners:
beforequery: function(qe)
// console.log(qe);
qe.cancel = true;
addComboxFieldItemsWCS(); // Run this methode to get "layer_liste_WCS" witch is liste of data
var actionComboBox = Ext.getCmp('myCombo');
.
.
.
.
.
.
// I don't know how to do to reload the store after runing the methode "addComboxFieldItemsWCS"
, base));
return new Ext.Window(
closable: true,
resizable: false,
shadow: false,
closeAction: 'hide',
region: "center", //"north","south","east","west"
width: 480,
height: 190,
iconCls: 'wind_icon',
plain: true,
layout: 'border',
buttonAlign: 'right',
layout: 'fit',
listeners:
show: function()
this.el.setStyle('left', '');
this.el.setStyle('top', '');
,
items: [
region: 'center',
xtype: 'tabpanel',
activeTab: 0,
width: 50,
height: 20,
items: [ // we will declare 3 tabs
title: 'Datas Inputs',
closable: false,
iconCls: 'input_icon',
active: true,
items: [
xtype: 'form',
autoWidth: true,
labelWidth: 185,
bodyStyle: "padding:10px;",
items: [
ImageField,
]
]
]
],
);
,
【问题讨论】:
您如何在商店中删除\添加图层?你能分享那个代码吗 听到页面:geoxxx.agrocampus-ouest.fr/mapfishapp/… 要找到窗口,请转到“工具”->“WPS Jussie”并使用右侧面板删除/添加图层。这是源代码:github.com/geosas/wpsjussie/blob/master/js/main.js 【参考方案1】:我迟到了,但我抓住了机会。
addComboxFieldItemsWCS
中有 ajax 调用吗?
如果可以,请将此代码放在您的回调中:
Ext.getCmp('myCombo').getStore().loadData(layer_liste_WCS, false);
供您参考,false 参数是替换现有数据。
希望对您有所帮助。
【讨论】:
嗨,很抱歉迟到了!不 !我没有 Ajax 调用!存储是一个 ['text', 'value'] 的数组。你能发布一个示例代码吗?提前谢谢你!以上是关于在触发单击 Extjs 3.4 时重新加载 ComboBox 存储的主要内容,如果未能解决你的问题,请参考以下文章