Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   grid. добавить column в column (https://javascript.ru/forum/extjs/38194-grid-dobavit-column-v-column.html)

skrudjmakdak 23.05.2013 09:09

grid. добавить column в column
 
есть грид.
{
xtype: 'grid',
width: 400,
id: 'grid1',
height: 300,
columns: [
	{
	text: 'col1',
	id: 'column1'
	},
	{
	text: 'col2'
	},
	{
	text: 'col3'
	}]
}

нашел чтобы в грид добавлялось поле
var column = Ext.create('Ext.grid.column.Column',
	{
	text : 'new column'
	});
Ext.getCmp('grid1').headerCt.insert(0, column);


а вот как добавить поле не в грид а в column? т.е. многоуровневый сделать грид?

shepard90 23.05.2013 14:44

Я так думаю вы подобное видели
var myGrid= Ext.create('Ext.grid.Panel',{
		//...
		columns:[
                        {header: 'text',
                        columns:[
                                {header: 'text1'},
                                {header: 'text2'},
                                {header: 'text3'},
                                {header: 'text4'}
                                ]
                        }
                        ]
});

http://docs.sencha.com/extjs/4.2.0/#...ed-header-grid
но вам такой вариант не катит, так как необходимо добавлять столбцы по какому-то событию.
Поковырял, помудрил. Предположил, что для столбца необходим хидерконтейнер, так как он есть в гриде, но для column отсутствует (хотя сам по себе колюмн наследуется от хидерконтейнера. ...?) Накидал такой код
myGrid.headerCt.insert(0,new
Ext.grid.column.Column({header:'mainColumn',id:'mainCol',items:[{xtype:'headercontainer',id: 'hc'}]}));
Ext.getCmp('hc').insert(0,new Ext.grid.column.Column({header:'subColumn',id:'subCol1'}));
console.log(Ext.getCmp('hc'));

Код вроде выполняется без ошибок, но к сожалению подстолбец так и не отобразился(
хотя в хидерконтейнере действительно содержится запись о субколюмн
может дело в том что хидерконтейнер я сажаю в items mainColumn, когда для грида не так (ну то есть в том случае когда все работает, в смысле столбец добавляется в грид)
Если решите или решили уже задачу, то отпишитесь пожалуйста


Часовой пояс GMT +3, время: 08:14.