我想用XML加载组合框,但我无法在组合框中获取任何值, 这是我到目前为止所做的事情
var getMessageDomain = function () {
var store = new Ext.data.Store({
url: 'zport/getDomainFilters',
autoLoad: true,
reader: new Ext.data.XmlReader({
record: 'Domain'
}, [{
name: 'name',
mapping: '@name'
}, ])
});
var combo = new Ext.form.ComboBox({
width: 250,
xtype: 'combo',
mode: 'local',
allowBlank: false,
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: 'Message Domain',
name: 'titlez',
hiddenName: 'titlez',
displayField: 'name',
valueField: 'name',
editable: false,
store: store
});
return combo;
};
和我的xml是这样的:
<TDSmessagedomain xmlns="">
<Domain name="AEPL" />
<Domain name="APAP" />
<Domain name="BCP" />
<Domain name="BTCI" />
<Domain name="BGSET" />
<Domain name="COLLCLIENT" />
<Domain name="COLLINT" />
<Domain name="CPL" />
<Domain name="DBWS" />
.........................
答案 0 :(得分:1)
1)我鼓励您使用XmlStore,它将自动为您配置XmlReader。
var store = new Ext.data.XmlStore({
autoLoad: true,
url: 'zport/getDomainFilters',
fields: ['name'],
record: 'Domain'
});
2)这是未经测试的,但我认为您需要稍微修改XML结构。我不知道它是否会在记录标识符中查找属性。
<TDSmessagedomain xmlns="">
<Domain>
<name>AEPL</name>
</Domain>
<Domain>
<name>APAP</name>
</Domain>
</TDSmessagedomain>