2017-05-22 8 views
0

xmllからtagfieldにデータをロードしようとしています。しかし、何が失敗しているのか分かりません。誰でも私にここで間違っていることを教えてもらえますか? 私は別の機能を持つtagfieldにstoreを使用しています。私はそこでもデバッグをすることさえできないことを知っていません。XMLからtagfieldにデータをロードする方法

Ext.define('MyApp.view.main.List', { 
    extend: 'Ext.form.Panel', 
    title: 'Simple Form', 
    xtype: 'mainlist', 
    bodyPadding: 5, 
    width: 350, 

    // The form will submit an AJAX request to this URL when submitted 
    url: 'save-form.php', 

    // Fields will be arranged vertically, stretched to full width 
    layout: 'anchor', 
    defaults: { 
     anchor: '100%' 
    }, 

    // The fields 
    defaultType: 'textfield', 
    items: [{ 
     fieldLabel: 'First Name', 
     name: 'first', 
     allowBlank: false 
    },{ 
     xtype: 'tagfield', 
     fieldLabel: 'Select a Show', 
     store: this.TagStore, 
     //displayField: 'show', 
     valueField: 'id', 
     queryMode: 'local', 
     filterPickList: true, 
    }], 
    renderTo: Ext.getBody(), 

    TagStore : function(){ 
     debugger; 
     var combstore = Ext.create('Ext.data.Store', { 
      autoLoad: true, 
      fields: [{ 
       name: 'value', 
       mapping: "ITEMID", 
       type: 'string' 
      }, { 
       name: 'name', 
       mapping: "TITLE", 
       type: 'string' 
      }], 
      proxy: new Ext.data.HttpProxy({ 
       type: 'ajax', 
       actionMethods: { 
        read: "GET" 
       }, 
       url: "localhost/MyApp/resources/data.xml", 
       headers: { 
        'Accept': 'application/json; charset=utf-8' 
       }, 
       reader: { 
        type: 'xml', 
        rootProperty: 'R.D.Result' 
       }, 
       extraParams: { 
        strIPXML: strIPXML 
       } 
      }) 
     }); 
    } 
}); 

にMyXML:

<EMAIL> 
<E TITLE="[email protected]" ITEMID="A" /> 
<E TITLE="[email protected]" ITEMID="B" /> 
</EMAIL> 

誰もがExtJSに

答えて

0

でXMLを介してデータをロードする方法を手伝ってくれるだけで煎茶のフィドルにあなたの問題と遊ぶのがいつかました、ここでは基本的な作業コードがあります(少なくとも、タグフィールドストアが表示されているのを見て)。 使用される:内線JS 5.1.1.451 - グレー



    Ext.application({ 
    name : 'Fiddle', 

    launch : function() { 
     Ext.define('MyApp.view.main.List', { 
    extend: 'Ext.form.Panel', 
    title: 'Simple Form', 
    xtype: 'mainlist', 
    bodyPadding: 5, 
    width: 350, 

    // The form will submit an AJAX request to this URL when submitted 
    url: 'save-form.php', 

    // Fields will be arranged vertically, stretched to full width 
    layout: 'anchor', 
    defaults: { 
     anchor: '100%' 
    }, 

    // The fields 
    defaultType: 'textfield', 
    items: [{ 
     fieldLabel: 'First Name', 
     name: 'first', 
     allowBlank: false 
    },{ 
     xtype: 'tagfield', 
     fieldLabel: 'Select a Show', 
     store:Ext.getStore('TagStore'), 
     displayField: 'name', 
     valueField: 'value', 
     queryMode: 'local', 
     filterPickList: true, 
    }], 
    renderTo: Ext.getBody(), 

    TagStore : function(){ 
     var combstore = Ext.create('Ext.data.Store', { 
      autoLoad: true, 
      storeId:'TagStore', 
      fields: [{ 
       name: 'value', 
       mapping: "@ITEMID", 
       type: 'string' 
      }, { 
       name: 'name', 
       mapping: "@TITLE", 
       type: 'string' 
      }], 
      proxy: { 
       type: 'ajax', 
       url: "data1.xml", 
       reader: { 
        type: 'xml', 
        record: 'E', 
        rootProperty:'EMAIL' 
       } 
      } 
     }); 
     return combstore; 
    } 
}); 
var form = Ext.create('MyApp.view.main.List'); 
form.TagStore(); 
var store = Ext.getStore('TagStore'); 
form.child('[xtype=tagfield]').bindStore(store); 
    } 
}); 

data1.xml

<?xml version="1.0" encoding="UTF-8"?> 
<EMAIL> 
<E TITLE="[email protected]" ITEMID="A" /> 
<E TITLE="[email protected]" ITEMID="B" /> 
</EMAIL> 
関連する問題