Page 1 of 3 123 LastLast
Results 1 to 10 of 28

Thread: Toolbar resizing problem

  1. #1

    Default Toolbar resizing problem

    Ext version tested:

    • Ext 3.1.1



    Adapter used:

    • ext



    css used:

    • ext-all.css
    • ../shared/examples.css
    • grid-examples.css





    Browser versions tested against:

    • FF3.5.7 (firebug 1.4.5 installed)



    Operating System:

    • Ubuntu 9.10 x64



    Description:

    • The toolbar of GridPanel or TreePanel is not resized when the grid is being resized by, in this example, a scrollbar appearing. In this example, you can see that the toolbar is not well resized because the right button is not completely showed up when the store is being populated.



    Test Case:
    Use the example ext-3.1.1\examples\grid\array-grid.html with these modifications:

    array-grid.html
    Code:
    <html> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
        <title>Stateful Array Grid Example</title> 
    
        <!-- ** CSS ** --> 
        <!-- base library --> 
        <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" /> 
    
        <!-- overrides to base library --> 
    
        <!-- page specific --> 
        <link rel="stylesheet" type="text/css" href="../shared/examples.css" /> 
        <link rel="stylesheet" type="text/css" href="grid-examples.css" /> 
    
        <!-- ** Javascript ** --> 
        <!-- ExtJS library: base/adapter --> 
        <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script> 
    
        <!-- ExtJS library: all widgets --> 
        <script type="text/javascript" src="../../ext-all.js"></script> 
    
        <!-- overrides to base library --> 
    
        <!-- page specific --> 
        <script type="text/javascript" src="array-grid.js"></script> 
    
    </head> 
    <body>
        <div> 
            <div style="margin:0 auto; width:80%;">
                <div style="background:#DDE1EE none repeat scroll 0 0;float:left;margin-bottom:10px;margin-top:10px;width:100%;">
                    <div style="background:#FFFFFF;border:1px solid #B1BAD8;margin:6px;">
                        <div id="grid-example"></div>
                    </div>
                </div>
            </div>
        <div> 
    </body> 
    </html>
    array-grid.js
    Code:
    /*!
     * Ext JS Library 3.1.1
     * Copyright(c) 2006-2010 Ext JS, LLC
     * [email protected]
     * http://www.extjs.com/license
     */
    Ext.onReady(function(){ 
    
        // NOTE: This is an example showing simple state management. During development, 
        // it is generally best to disable state management as dynamically-generated ids 
        // can change across page loads, leading to unpredictable results.  The developer 
        // should ensure that stable state ids are set for stateful components in real apps.     
        Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 
    
        // sample static data for the store 
        var myData = [ 
            ['3m Co',71.72,0.02,0.03,'9/1 12:00am'], 
            ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'], 
            ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'], 
            ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'], 
            ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'], 
            ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'], 
            ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'], 
            ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'], 
            ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'], 
            ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'], 
            ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'], 
            ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'], 
            ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'], 
            ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'], 
            ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'], 
            ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'], 
            ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'], 
            ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'], 
            ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'], 
            ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'], 
            ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'], 
            ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'], 
            ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'], 
            ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'], 
            ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'], 
            ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'], 
            ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'], 
            ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],            
            ['3m Co',71.72,0.02,0.03,'9/1 12:00am'], 
            ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'], 
            ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'], 
            ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'], 
            ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'], 
            ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'], 
            ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'], 
            ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'], 
            ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'], 
            ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'], 
            ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'], 
            ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'], 
            ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'], 
            ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'], 
            ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'], 
            ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'], 
            ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'], 
            ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'], 
            ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'], 
            ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'], 
            ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'], 
            ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'], 
            ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'], 
            ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'], 
            ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'], 
            ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'], 
            ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'], 
            ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],       
            ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'] 
        ]; 
    
        /** 
         * Custom function used for column renderer 
         * @param {Object} val 
         */ 
        function change(val){ 
            if(val > 0){ 
                return '<span style="color:green;">' + val + '</span>'; 
            }else if(val < 0){ 
                return '<span style="color:red;">' + val + '</span>'; 
            } 
            return val; 
        } 
    
        /** 
         * Custom function used for column renderer 
         * @param {Object} val 
         */ 
        function pctChange(val){ 
            if(val > 0){ 
                return '<span style="color:green;">' + val + '%</span>'; 
            }else if(val < 0){ 
                return '<span style="color:red;">' + val + '%</span>'; 
            } 
            return val; 
        } 
    
        // create the data store 
        var store = new Ext.data.ArrayStore({ 
            fields: [ 
               {name: 'company'}, 
               {name: 'price', type: 'float'}, 
               {name: 'change', type: 'float'}, 
               {name: 'pctChange', type: 'float'}, 
               {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} 
            ] 
        }); 
    
        // create the Grid 
        var grid = new Ext.grid.GridPanel({ 
            store: store, 
            columns: [ 
                {id:'company',header: 'Company', width: 160, sortable: true, dataIndex: 'company'}, 
                {header: 'Price', width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'}, 
                {header: 'Change', width: 75, sortable: true, renderer: change, dataIndex: 'change'}, 
                {header: '% Change', width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'}, 
                {header: 'Last Updated', width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} 
            ], 
            stripeRows: true, 
            autoExpandColumn: 'company', 
            height: 'auto',
            autoHeight: true, 
            width: 'auto', 
            tbar: [
                {id: 'lft_btn', text: "Left button"},
                '->',
                {id: 'rgt_btn', text: "Right button"}
        ], 
            // config options for stateful behavior 
            stateful: true, 
            stateId: 'grid'         
        }); 
         
        // render the grid to the specified div in the page 
        grid.render('grid-example');
    
        // manually load local data 
        store.loadData.defer(2500, store, [myData]); 
    });
    Screenshot:

    • attached
    Attached Images Attached Images

  2. #2
    Sencha User Jamie Avins's Avatar
    Join Date
    Mar 2007
    Location
    Redwood City, California
    Posts
    3,661

    Default

    Your configuration is not going to work with toolbars. Without a managing container, you need to specify a height/width for this to work properly.

  3. #3

    Default

    Even if I put the grid inside a container, it won't set the right auto-width to the toolbar and the right button will still be off. Any solution?

    Code:
        // create the Grid
        var container = new Ext.Container({
        autoWidth: true,
        autoHeight: true,
        items: [ 
                new Ext.grid.GridPanel({ 
            store: store, 
            columns: [ 
                {id:'company',header: 'Company', width: 160, sortable: true, dataIndex: 'company'}, 
                {header: 'Price', width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'}, 
                {header: 'Change', width: 75, sortable: true, renderer: change, dataIndex: 'change'}, 
                {header: '% Change', width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'}, 
                {header: 'Last Updated', width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} 
            ], 
            stripeRows: true, 
            autoExpandColumn: 'company', 
            height: 'auto',
            autoHeight: true, 
            width: 'auto', 
            tbar: [
                {id: 'lft_btn', text: "Left button"},
                '->',
                {id: 'rgt_btn', text: "Right button"}
            ], 
            // config options for stateful behavior 
            stateful: true, 
            stateId: 'grid'         
            })
        ]
        }); 
         
        // render the grid to the specified div in the page 
        container.render('grid-example');

  4. #4
    Sencha User Jamie Avins's Avatar
    Join Date
    Mar 2007
    Location
    Redwood City, California
    Posts
    3,661

    Default

    Moving this to the help forum where they can go over the layout issues here.

  5. #5

    Default

    Someone ever went through this case?

  6. #6

    Default

    I still don't have any idea how to output this correctly.

    someone could help?

  7. #7
    Sencha Premium Member
    Join Date
    Mar 2010
    Posts
    3

    Default

    Same problem here! Getting a lot of resizing problem related with the scrollbars in Firefox.

  8. #8
    Sencha Premium Member
    Join Date
    Mar 2010
    Posts
    18

    Default

    This problem should be addressed IMO. Does someone in ExtJS team can reproduce the problem ?

    Is the resolution of this bug is feasible or ExtJS don't want to play with that kind of setup?

    Thanks !

  9. #9

    Default

    bump!

  10. #10
    Sencha User Animal's Avatar
    Join Date
    Mar 2007
    Location
    Bédoin/Nottingham
    Posts
    30,890

    Default

    Sized to what? You don't give it a width, so how is any possible code supposed to size the grid UPON RENDER?

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •