Изменить высоту сетки ExtJS в Javascript - PullRequest
2 голосов
/ 07 июня 2010

Как я могу указать на объект сетки ExtJS и вручную установить высоту (в пикселях)?

Например, с таким же:

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: 350,
    width: 600,
    title: 'Array Grid',
    // config options for stateful behavior
    stateful: true,
    stateId: 'grid'        
});

Могу ли я указать на объект "сетка", а затем установить размер сетки?

Любая помощь была бы фантастической!

Ответы [ 2 ]

4 голосов
/ 07 июня 2010

В дополнение к ответу Thariama выше, если вы не можете или не можете сохранить ссылку на переменную 'grid', вы можете присвоить идентификатор создаваемому компоненту и использовать его позже в коде, метод ExtJS::getCmp чтобы получить ссылку на созданный вами ExtJS-компонент, используя его ID. Обратите внимание, что в этой конфигурации свойство конфигурации 'id' установлено в 'myGrid'

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: 350,
    width: 600,
    title: 'Array Grid',
    // config options for stateful behavior
    stateful: true,
    stateId: 'grid',
    id: 'myGrid'
});

После того, как ваша сетка запущена, откройте firebug и следующий код установит высоту сетки:

Ext.getCmp('myGrid').setHeight(600);
3 голосов
/ 07 июня 2010

Я не совсем уверен, понял ли я, что вы хотите. Вы хотите установить высоту сетки при инициализации сетки или после рендеринга?

для установки высоты при запуске с использованием php:

var heigtht_set = <?php echo $grid_height ?>;

var grid = new Ext.grid.GridPanel({
    store: store,
...
    height: heigtht_set ? heigtht_set : 350,
...       
});

вы также можете установить переменную heigtht_set в любую другую доступную переменную javascript;

если вы хотите установить высоту 600 после рендеринга сетки, вы можете использовать setHeight ():

var heigtht_set = 600;
grid.setHeight(heigtht_set);
...