1

同じ内容で、互いに少し異なるグリッドのみを持ついくつかのビューを作成する必要があります。

私の考えは、基本ビューを作成することですが、継承されたクラスでこのグリッドを変更する方法がわかりません。

ベース:

Ext.define('App.view.cadastro.FiltroBase',{
    extend: 'App.controls.CoWindow',
    alias: 'widget.filtrobase',
    modal: false,
    width: 800,
    height: 400,
    layout: 'vbox',
    items: [
        {
            xtype: 'container',
            layout: {
                type: 'hbox',
                align: 'middle'
            },
            width: '100%',

            defaults: {
                padding: 4
            },
            items: [
                {
                    xtype: 'label',
                    text: i18n.procurarPor
                },
                {
                    xtype: 'combobox',
                    itemId: 'comboBox',
                    queryMode: 'local',
                    forceSelection: true,
                    width: 150
                },{
                    xtype: 'label',
                    text: 'Filtro:'
                },
                {
                    xtype: 'textfield',
                    itemId: 'filtro',
                    enableKeyEvents: true,
                    flex: 1
                },
                {
                    xtype: 'container',
                    width: 100,
                    layout: 'fit',
                    items: [
                        {
                            xtype: 'button',
                            text: i18n.pesquisar,
                            action: 'pesquisar',
                            itemId: 'botaoPesquisa',
                            icon: 'assets/img/16/find.png'
                        }
                    ]
                }

            ]
        },
        {
            xtype: 'grid',   ******************
            flex: 1,
            width: '100%',
            itemId: 'grid',
            columns: [
                {
                    text: i18n.nome,
                    dataIndex: 'nome',
                    flex: 1
                }
            ],
            dockedItems: [{
                xtype: 'pagingtoolbar',
                dock: 'bottom',
                displayInfo: true
            }]*****************
        }
    ],
    buttons: [
        {
            text: i18n.incluir,
            action: 'incluir',
            itemId: 'botaoIncluir',
            icon: 'assets/img/16/new.png'
        },
        {
            text: i18n.editar,
            action: 'editar',
            itemId: 'botaoEditar',
            icon: 'assets/img/16/edit.png'
        }
    ]

});
4

1 に答える 1

4

一般的な考え方は、次のようなことを行うことです。

Ext.define('BaseGrid', function(){
    initComponent: function(){
        this.columns = this.getColumns();
        this.callParent();
    },

    getColumns: Ext.emptyFn
});

Ext.define('SubGrid', {
    getColumns: function(){
        return [];
    }
});
于 2013-03-14T21:05:22.263 に答える