1

2 つのグリッドを含む EXTJS 4.0 タブパネルを実装しました。

これは、最初にロードしたときにすべて正常に実行されます。しかし、別のパネル(タブパネルの子ではない)に移動してから、ビューポートでタブパネルをリロードするか、ブラウザウィンドウのサイズを変更すると、HTML子ホームクライアント(グリッド)が消えます(タブパネルからHTML要素が削除されます)。

ここに画像の説明を入力

なぜこれが起こっているのか誰にも分かりますか?

タブパネル:

Ext.define('EY.view.center.home.container.Panel', {
    extend: 'Ext.tab.Panel',
    alias: 'widget.containerhome',
    id: 'containerhome',
    activeTab: 1,

    border: false,
    resizeTabs:true,

     items: [{
            title: 'Most Used clients',
            iconCls: 'tabIcon',
            xtype: 'mostUsedClients',
            id: 'mostUsedClients',
            scale: 'large'
        },{
                title: 'All Clients',
                xtype: 'homeclients',
                id: 'homeclients',
                scale: 'large'
            }
        ],
    requires: [
        'EY.view.center.home.client.Grid',
         'EY.view.center.home.client.mostUsedClients.mostUsedClients'
],


    initComponent: function () {
        Ext.apply(this, {



        })
        this.callParent(arguments);
    }
});

グリッド:

Ext.define('EY.view.center.home.client.Grid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.homeclients',
    id: 'homeclients',
    baseCls: 'homeclients',
    //frame:true,
    store: 'Clients', //Ext.data.StoreManager.lookup('serviceStore'),
    contextMenu: undefined,

    border: false,
    //flex: 1,
    padding: 3,
    hideHeaders: true,

    columns: [
        { header: 'CLIENTS', field: 'textfield', flex: 1 }

        ],


    features: [
        Ext.create('Ext.grid.feature.RowBody', {
            getAdditionalData: function (data, rowIndex, rec, orig) {
                var headerCt = this.view.headerCt;
                var colspan = headerCt.getColumnCount();
                return {

                    rowBody: createHtml(rec),
                    rowBodyCls: this.rowBodyCls,
                    rowBodyColspan: colspan
                };
            }
        }),
         {
             ftype: 'rowwrap'
         }
    ],



    viewConfig: {
        listeners: {
            itemclick: function (list, index, target, record, event) {
                if (event.target.id == 'grandAccess') {

                    var windowIsClosed = Ext.getCmp('ConfirmationWindow');
                    if (!windowIsClosed) {
                        var clientId = index.data.id;
                        var clientVat = index.data.rn;
                        eDocsUser.currentClientName = index.data.n;
                        eDocsUser.currentClientId = clientId;
                        eDocsUser.currentClientRegisterNummer = clientVat;

                        showGrantAccesWindow(index);
                    }
                } else {

                    if (Ext.getCmp('ConfirmationWindow')) {
                        Ext.getCmp('ConfirmationWindow').hide();
                    }
                    loadDataOfSelectedClient(index);
                }

            }
        }
    },





    initComponent: function () {


        this.callParent(arguments);

    }
});
4

1 に答える 1

0

サイズ変更の問題のためにグリッドをデータビューに変更することでこれを解決しました(グリッドは私にとって多くの問題を引き起こします)。

そして、次のように変更して、他の問題を修正しました。

layout.setActiveItem(Ext.getCmp('containerhome'), {
                                type: 'slide',
                                direction: 'left',
                                duration: 5000
                            });

layout.setActiveItem(0);

私たち(私ではありません... :D)は、カードパネルで古いアイテムを呼び出す代わりに、新しいアイテムを作成しました。

于 2012-10-02T13:59:00.680 に答える