首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ext.List仅显示1个值,而不是所有值

Ext.List仅显示1个值,而不是所有值
EN

Stack Overflow用户
提问于 2011-11-10 21:09:24
回答 1查看 345关注 0票数 0

我正在使用AJAX请求从服务器获取JSON格式的值。但是,当我尝试在Ext.List中显示这一点时,只显示1个值,而不是全部。

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-10 23:19:09

您是在for循环中创建TabPanel的,该循环为每个数组项创建一个TabPanel,每个TabPanel都有一个列表,该列表绑定到一个具有一条记录的存储。这些都是叠加在一起的,所以你一次只能看到一个。

为了让它快速工作,我将把您的TabPanel创建放在for循环之外,并在其中构建您的数据集:

代码语言:javascript
复制
var dataArray = [];
for (var i = 0; i < count; i++) {
   name = posts.data[i].name;

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

然后,您可以将此dataArray传递给您的商店:

代码语言:javascript
复制
new Ext.data.JsonStore({
            model: 'Contact',
            sorters: 'firstName',

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

但是,我建议您研究一下如何让您的存储自己加载此数据(通过代理),因为这是最好的方法。

斯图尔特

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8079981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档