0

extjs 4 mvc でアプリケーションを開発しています。スクロールバーに問題があります。私のextjsコンポーネントはどれもスリムなスクロールバーをレンダリングしません. すべてのコンポーネントは、醜いブラウザー スクロール バーをレンダリングするだけです。

Ext.define('Complaints.view.ComplaintGrid',{
    extend: 'Ext.grid.Panel',
    alias: 'widget.complaintgrid',
    id: 'complaintGrid',
    cls: 'custom-complaint-grid',   
    store: 'Complaints',

    columns :
    [
        {header: 'Date', dataIndex: 'Date', width: 200},
        {header: 'Data 1', dataIndex: 'data1', width: 200},
        {header: 'Data 2', dataIndex: 'data2', flex: 1},
        {header: 'Complaint', dataIndex: 'Complaint', width: 150},              
    ]   
})

これは、アプリケーションにあるグリッド パネルの 1 つのコードです。これには 2 つの問題があります。

  1. 垂直スクロール バーはスリム スクロールではありません
  2. 不要な水平スクロール バーが表示される

このグリッドをコンテナ内に収めました。以下のコード。

Ext.define('Complaints.view.CenterPanel',{
    extend: 'Ext.panel.Panel',
    alias: 'widget.centerpanel',
    cls: 'custom-complaint-grid',
    id: 'centerPan',
    bodyStyle: "padding-left: 20px; padding-top: 10px; padding-right: 15px; background-color:#fff",
    layout: 'card',
    requires: [        
        'Complaints.view.ComplaintGrid', 
        'Complaints.view.ComplaintChart'
    ],
    initComponent: function(){       
        this.tbar = [{height: 50},'->',
            {
                    xtype: 'component',
                    cls: 'topDockTwoBtn',
                    width: 107,
                    height: 40
            },      
            {
                    xtype: 'component',
                    cls: 'topDockSixtyBtn',
                    width: 103,
                    height: 40,                    
            },
            {
                    xtype: 'component',
                    cls: 'topDockOneBtn',
                    width: 105,
                    height: 40
            },
            {
                    xtype: 'component', 
                    cls: 'topDockSrchBtn',
                    width: 72,
                    height: 40
            }
        ];

        this.items = [
            {
                xtype: 'complaintgrid'
            },
            {
                xtype: 'complaintchart'
            }
        ];

        this.bbar = [{height: 50},'->',
            {
                xtype: 'image',
                cls: 'btmDockChrtBtn',
                id: 'chartbutton',
                width: 53,
                height: 40,
                listeners: {
                    el: {
                        click: function() {
                            console.log('click reg');
                            Ext.getCmp('centerPan').getLayout().setActiveItem(1);
Ext.getCmp('centerPan').doLayout();
                            Ext.getCmp('chartbutton').addClass('btmDockChrtBtn-active');
                            Ext.getCmp('gridbutton').removeCls('btmDockGrdBtn-active');
                        }
                    }
                }
            },
            {
                xtype: 'component', 
                cls: 'btmDockGrdBtn',
                width: 58,
                height: 40,
                id: 'gridbutton',
                listeners: {
                    el: {
                        click: function() {
                            console.log('click reg');
                            Ext.getCmp('centerPan').getLayout().setActiveItem(0);
Ext.getCmp('centerPan').doLayout();
                            Ext.getCmp('gridbutton').addClass('btmDockGrdBtn-active');
                            Ext.getCmp('chartbutton').removeCls('btmDockChrtBtn-active');                       
                        }
                    }
                }
            }                
        ];                              
        this.callParent();
    }   
})

また、CSS をいじって、グリッド パネルのいくつかのクラスをオーバーライドして、希望どおりに見えるようにしました。水平スクロールバーが表示され、垂直スクロールバーが表示されない理由を教えてください。

4

1 に答える 1

0

jScrollPane または fleXcroll: Cross Browser Custom Scroll Bar を使用する必要があります。

于 2013-03-07T08:44:01.083 に答える