Проблема макета портала ExtJS (автоматическая высота / ширина внутренних элементов) - PullRequest
0 голосов
/ 21 марта 2012

Я использую http://dev.sencha.com/deploy/ext-4.0.7-gpl/examples/portal/portal.html для создания портала.Очевидно, у меня есть пользовательские окна внутри него, которые регулируют их высоту / ширину, как в указанной ссылке.В одном из окон у меня есть диаграмма и сетка, которую я хочу разместить рядом друг с другом.Но этот подход требует от меня предоставить высоту / ширину для графика. Если я делаю это, диаграмма не регулирует свою высоту / ширину, если я играю с высотой и шириной родительского контейнера, как в примере.Я использую макет hbox с подсветкой, чтобы растянуть.Пожалуйста, найдите код ниже.

  Ext.apply(this,{layout: {
        type: 'hbox',
        align: 'stretch'
    }
  ,      width:600,height:300,items:
     [



    {
      xtype: 'chart',
        animate: true,
        shadow: true,
        height:200,
        width:200,
        store: Ext.create('Ext.data.JsonStore', {
    fields: ['year', 'comedy', 'action', 'drama', 'thriller'],
    data: [
            {year: 2005,  action: 23890000},
            {year: 2006,  action: 38900000},
            {year: 2007,  action: 50410000},
            {year: 2008,  action: 70000000}
          ]
          }),
        legend: {
            position: 'right'
        },
        axes: [{
            type: 'Category',
            position: 'bottom',
            fields: ['action'],

        }, {
            type: 'Numeric',
            position: 'left',
            fields: ['year'],
            title: false
        }],
        series: [{
            type: 'bar',
            axis: 'top',
            gutter: 80,
            xField: 'year',
            yField: ['action'],
            tips: {

            }
        }]





          },{xtype:'grid',
    collapsible:false,store: Ext.create('Ext.data.ArrayStore', {
       fields: [
       {name: 'company'},
       {name: 'price',      type: 'float'},
       {name: 'change',     type: 'float'}
      ],
       data: myData
     }), multiSelect: true,viewConfig: {emptyText: 'No information to display'},
       columns: [{
            text     : 'Company',
            flex     : 1,
            sortable : false,
            dataIndex: 'company'
        },
        {
            text     : 'Price',
            width    : 75,
            sortable : true,
            renderer : 'usMoney',
            dataIndex: 'price'
        }]
           }]


        });

1 Ответ

2 голосов
/ 21 марта 2012

Вам не нужно указывать ширину / высоту на графике или сетке. Просто добавьте значение 'flex' для каждого, например, flex: 1, чтобы они оба имели одинаковую ширину в контейнере hbox.

...