1

コンボ ボックスに 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" /> 
.........................
4

1 に答える 1

1

1) XmlReader を自動的に構成する XmlStore を使用することをお勧めします。

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>
于 2012-07-26T19:23:17.147 に答える