Ext JS - создание одной сетки несколько раз не работает - PullRequest
1 голос
/ 24 ноября 2011

Я определил новый класс "ConfirmationPanel" и хочу создать эту панель внутри окна.Это хорошо видно, когда я создаю окно в первый раз.Но когда я создаю второе окно, панель в окне-1 перемещается в окно-2.Я хочу, чтобы одна и та же панель создавалась дважды для каждого окна.Как я могу это сделать?

</p> <pre><code>Ext.define('MyApp.views.ConfirmationPanel', { extend: 'Ext.grid.Panel', requires: 'MyApp.store.ConfirmationStore', border: false, initComponent: function() { this.store = Ext.create('MyApp.store.ConfirmationStore', {}); this.columns = this.buildColumns(); this.callParent(arguments); }, buildColumns: function() { return [ {text: "Id", width: 50, flex: 1, dataIndex: 'docId', sortable: true}, {text: "Name", width: 150, dataIndex: 'docName', sortable: true}, {text: "Type", width: 75, dataIndex: 'docType', sortable: true}, {text: "URL", width: 115, dataIndex: 'docUrl', sortable: true}, {text: "Sent Time", width: 115, dataIndex: 'docSentTime', sortable: true}, {text: "Ack Time", width: 115, dataIndex: 'docAckTime', sortable: true} ]; }, viewConfig: { listeners: { itemdblclick: function( dataview, record, item, index, e) { alert( 'opening document here'); } } } });

Любая помощь / совет приветствуется.

---- Я пыталсяСоздайте новый экземпляр панели, как показано ниже внутри вкладки.Но даже тогда он создал только один экземпляр.Может быть, я делаю что-то в принципе неправильно.

    items: {
        xtype:'tabpanel',
        plain:true,
        activeTab: 0,
        height:350,
        defaults:{
            bodyPadding: 10 
        },
        items: [
            {
                title:'Test',
                items: Ext.create('Ext.panel.Panel', {
                    bodyPadding: 5,  
                    title: 'Filters',
                    items: [{
                        xtype: 'datefield',
                        fieldLabel: 'Start date'
                    }, {
                        xtype: 'datefield',
                        fieldLabel: 'End date'
                    }]
                })

            },
            {
                title:'My Confirms',
                items: Ext.create( "MyApp.views.ConfirmationPanel")
            }
        ]
    }

1 Ответ

0 голосов
/ 29 ноября 2011

try

Ext.define('MyApp.views.ConfirmationPanel', {
    ...
    alias: 'confirmpanel',
    ...

и внутри табуляции:

        {
            title:'My Confirms',
            items: [{
                xtype: 'confirmpanel'
            }]
        }

причина такого поведения, которое вы получаете, заключается в том, что единственный экземпляр MyApp.views.ConfirmationPanel создается во времяваши настройки через Ext.create ("MyApp.views.ConfirmationPanel")

...