ExtJS Costum商店表示

时间:2013-03-26 20:00:27

标签: extjs store

如果有任何ExtJS方式我可以加载存储数据并且在加载后我可以在主面板中创建其他我的组件(自定义面板)以便以我的特定方式显示数据吗?

enter image description here

我希望使用我的自定义组件在面板中存储显示数据

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 如果您只需要显示数据,则DataView是为此任务量身定制的。
  2. 如果你真的需要一个组件(即封装用户交互而不仅仅是显示的东西),那么你需要创建这个组件,并且当你的商店负载为每个记录创建一个组件并将其添加到你的主面板。
  3. 要复制数据视图的docs示例(选项1):

    Ext.define('Image', {
        extend: 'Ext.data.Model',
        fields: [
            { name:'src', type:'string' },
            { name:'caption', type:'string' }
        ]
    });
    
    Ext.create('Ext.data.Store', {
        id:'imagesStore',
        model: 'Image',
        data: [
            { src:'http://www.sencha.com/img/20110215-feat-drawing.png', caption:'Drawing & Charts' },
            { src:'http://www.sencha.com/img/20110215-feat-data.png', caption:'Advanced Data' },
            { src:'http://www.sencha.com/img/20110215-feat-html5.png', caption:'Overhauled Theme' },
            { src:'http://www.sencha.com/img/20110215-feat-perf.png', caption:'Performance Tuned' }
        ]
    });
    
    var imageTpl = new Ext.XTemplate(
        '<tpl for=".">',
            '<div style="margin-bottom: 10px;" class="thumb-wrap">',
              '<img src="{src}" />',
              '<br/><span>{caption}</span>',
            '</div>',
        '</tpl>'
    );
    
    Ext.create('Ext.view.View', {
        store: Ext.data.StoreManager.lookup('imagesStore'),
        tpl: imageTpl,
        itemSelector: 'div.thumb-wrap',
        emptyText: 'No images available',
        renderTo: Ext.getBody()
    });