Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2012, 22:41
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

Динамическая высота грида
Не получается динамически поменять высоту грида в зависимости от resize окна (или панели в которой находится грид).
По коду - все меняется. но в браузере -никаких изменений не происходит.
Приложение - mvc.

Пример:
var vp = Ext.create('Ext.Viewport', {
		id:'vport',
		layout: 'border',
		items: [
		{
			region: 'center',
			id:'herushka',
			minHeight: 300,
			items: [{xtype: 'tlist',id:'gridak', height:200}]
		},
		{
			region: 'south',
			collapsible: true,
			height: 100,
			minHeight: 50,
			title: 'South'
		}],
		renderTo: Ext.getBody()
	});


Сетка
Ext.define('Tender.view.Test.List' ,{
    extend: 'Ext.grid.Panel',
    alias : 'widget.tlist',
	store : 'Test',
				
    initComponent: function() { 		
        this.columns =[
		//	{...},{...},{...}
		];
		
        this.callParent(arguments);
    }
});


ну и, соответственно в контроллере:

...
onWinResized: function(a,w,h,o) {		
	console.log('Resized');
	console.log('herushka:'+Ext.get('herushka').getHeight());
	console.log('gridak:'+Ext.get('gridak').getHeight());
	Ext.get('gridak').setHeight(Ext.get('herushka').getHeight()-40);
	console.log('gridak:'+Ext.get('gridak').getHeight());
},
...


Когда смотришь в консоль - все меняется просто замечательно. Смотришь код - тоже меняется высота.
А в браузере - то же самое остается. Может надо как то отрендерить? или обновить сетку? Хотя, по идее, должно все автоматом делаться.

Смысл таких телодвижений в том, что грид не растягивается в высоту при изменении viewport'а. Если задаешь определенную высоту - то появляется скролл. Если не задаешь этот параметр - то скролл не появляется, и высота грида будет зависит от количества записей в ней. в моем случае - около 2500. Если же задать явно параметр height = 300. то появится скролл и все будет в шоколаде. за исключением того, что при изменении окна, меняется и вьюпорт, а в грид не меняется, и выглядит все это очень плохо.

Последний раз редактировалось posta, 29.05.2012 в 22:48.
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2012, 23:08
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

Понял в чем дело. Решение:
Ext.getCmp('gridak').setHeight(Ext.getCmp('herushka').getHeight());
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2012, 23:39
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

зачем все это?
autoHeight: true

у грида задать не проще?
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2012, 00:35
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

Сообщение от nekto_O Посмотреть сообщение
зачем все это?
autoHeight: true

у грида задать не проще?
не работает
Ответить с цитированием
  #5 (permalink)  
Старый 30.05.2012, 15:34
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Сообщение от posta
не работает
значит лэйаут компонентов кривой.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись состояния грида в базу. jura4x01 ExtJS 5 01.02.2012 12:26
высота окна определяется не всеми браузерами cyklop77 Javascript под браузер 1 23.08.2011 07:25
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
Высота документа в опере. SunnyDay Общие вопросы Javascript 1 16.10.2008 13:27
Высота фрейма и высота загружаемого файла findman Events/DOM/Window 5 15.09.2008 03:33