Вход

Просмотр полной версии : Изменение высоты заголовков grid-а


khusamov
05.07.2015, 19:21
Почему когда я пытаюсь поменять высоту заголовков колонок


listeners: {
render: function() { this.getHeaderContainer().setHeight(60); }
}

то сплиттер между названиями колонок начинает генерировать ошибку Cannot read property 'heightModel' of null, при попытке его сдвинуть?

Код в песочнице https://fiddle.sencha.com/#fiddle/ptb

nohuhu
06.07.2015, 22:59
Потому что не надо ничего делать в render, onRender, afterRender. И вообще не надо высоту выставлять программно, пользуйтесь конфигурацией:


Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),

// columns это объект, который скармливается конструктору
// Ext.grid.header.Container
columns: {
height: 10,
items: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
]
},

height: 200,
width: 400,
renderTo: Ext.getBody()
});


См. сохранённый fiddle.

khusamov
07.07.2015, 16:47
Нужен способ ПРОГРАММНЫЙ, так как такой финт как

columns: {
height: 10,

я не смогу проделать для класса Ext.grid.property.Grid:

http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.grid.property.Grid

он просто перепишет мою конфигурацию своей, судя по коду класса Ext.grid.property.Grid:

me.columns = new Ext.grid.property.HeaderContainer(me, me.store);

*кстати очень печально что он это делает, что затрудняет наследование от него...

либо не знаю как это сделать не программно...

nohuhu
08.07.2015, 23:59
Ну, вы ж не уточнили, что вам это нужно для PropertyGrid. :( Эта штука хак на хаке, одна из доисторических наколенных поделок криворуких ковбоев каменного века… Попробуйте наследовать от PropertyGrid и задать высоту *до* рендеринга:


Ext.define('My.property.Grid', {
extend: 'Ext.grid.property.Grid',

initComponent: function() {
this.callParent();

this.columns.height = 10;
}
});


По идее должно сработать.

khusamov
09.07.2015, 08:50
Эта штука хак на хаке, одна из доисторических наколенных поделок криворуких ковбоев каменного века…

вертелся у меня на языке вопрос о странном содержимом класса...

Ну раз наследоваться, то тогда я все проблемы разом и решу. Возможно лучше тогда свой делать класс.

nohuhu
09.07.2015, 23:16
Таких доисторических компонентов не очень много осталось, они "в общем" работают и руки до них никак не доходят. Кроме PropertyGrid, можно ещё вспомнить Paging Toolbar, Date picker, ну и конечно звезду эстрады HtmlEditor. Этот я просто ненавижу люто и бешено, но переписывать его тоже не с руки, долго это и больно. Поэтому каждый раз, когда нужно какой-нибудь баг пофиксить, зажимаю нос и стараюсь глубоко в эту пакость не смотреть, чтобы не стошнило. :( Пардон за подробности…

Так что да, советую наследоваться и фиксить местами то, что нужно.