2011-11-10 8 views
0

im AJAXリクエストを使用してサーバーからJSON形式の値を取得しています。 しかし、これをExt.Listに表示しようとすると、1つだけの値が表示されます。Ext.Listは、すべてではなく1つの値しか表示しません

Ext.setup({ 
onReady: function() { 

    Ext.regModel('Contact', { 
     fields: ['firstName', 'lastName'] 
    }); 
      var posts; 
      var count; 
      var name = 'sdf'; 
     Ext.Ajax.request({ 
        url: 'a.php/pool/listPools', 
        method: 'post', 
        type:'json', 
        success: function(response){ 
          posts = Ext.decode(response.responseText); 
          alert(response.responseText); 
          count = posts.count; 
          for (var i = 0; i < count; i++) { 
          name = posts.data[i].name; 
          alert(name); 
          var btnContact = new Ext.TabPanel({ 
     fullscreen: true, 
     items: [ new Ext.List({ 
          itemTpl:'', 
      title: 'My Tab', 
      tpl: '<tpl for="."><div class="contact"><strong>{firstName}</strong> {lastName}</div></tpl>', 
      itemSelector: 'div.contact', 
      singleSelect: true, 
      grouped: true, 
      indexBar: false, 


      store: new Ext.data.JsonStore({ 
       model: 'Contact', 
       sorters: 'firstName', 

       getGroupString: function (record) { 
        return record.get('firstName'); 
       }, 
       data: [ 
        { 
               firstName: name, 
               lastName: '' 
              } 
       ] 
      }) 
     }), 
        //{ title: 'Tab 2' } 
       ] 
        }); 

       }}    
      }); 

} 

});

私の質問は、どのように私はすべての取得データを表示できますか?ちょうど1の代わりに?

答えて

1

1つのレコードを持つストアにバインドされたリストを持つ各TabPanelで配列アイテムごとに1つのTabPanelを作成するforループ内にTabPanelを作成しています。これらはすべてお互いの上にあるので、一度に1つしか見られません。

が、これはすぐに作業を取得するには、私は、forループの外で、あなたのタブパネルの作成を取り、あなたのデータは、その中に設定ビルドします:

new Ext.data.JsonStore({ 
      model: 'Contact', 
      sorters: 'firstName', 

      getGroupString: function (record) { 
       return record.get('firstName'); 
      }, 
      data: dataArray 
     }) 

var dataArray = []; 
for (var i = 0; i < count; i++) { 
    name = posts.data[i].name; 

    dataArray.push({ 
        firstName: name, 
        lastName: '' 
       }); 
} 

次に、あなたの店にこのdataArrayを渡すことができます

しかし、プロキシを使用して店舗にこのデータをロードする方法を検討することをお勧めします。これがこれを実行する最良の方法です。

スチュアート

関連する問題