Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.02.2012, 13:50
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 1  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
Question Регуляция высоты строки DataGrid

Здравствуйте! Подскажите, пожалуйста!
Есть экземпляр компонента DataGrid:
Код AS3:
<mx:DataGrid id="dg" width="100%" height="100%" variableRowHeight="true" wordWrap="true">
   <mx:columns>
      <mx:DataGridColumn dataField="par1" itemRenderer="myItemRenderer"/>
   </mx:columns>
</mx:DataGrid>
Код myItemRenderer:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Text id="ta" htmlText="{data.par1}" width="100%"/>
</mx:Module>
Как сделать так, чтобы высота строки DataGrid подстраивалась под высоту элемента Text (id="ta"), тобишь, чтобы весь текст компонента Text был виден в ячейке?


Последний раз редактировалось zorexundra; 13.02.2012 в 14:58.
Старый 14.02.2012, 19:29
droopy вне форума Посмотреть профиль Отправить личное сообщение для droopy Найти все сообщения от droopy
  № 2  
Ответить с цитированием
droopy

Регистрация: Dec 2011
Сообщений: 9
Не пойму зачем Text обернут в Module, хотя бы уж VBox.

Если html не сильно нужен, то вполне можно оставить без рендерера. Строки будут разной высоты, весь текст виден.

Если нужен html, то лучше использовать примерно такой рендерер:
Код AS3:
public class MyRenderer extends DataGridItemRenderer
{
    override public function set text(value:String):void
    {
        super.htmlText = value;
    }
}

Старый 15.02.2012, 13:01
zorexundra вне форума Посмотреть профиль Отправить личное сообщение для zorexundra Найти все сообщения от zorexundra
  № 3  
Ответить с цитированием
zorexundra

Регистрация: Dec 2010
Сообщений: 177
droopy, спасибо! Но вопрос остаётся открытым.
Я привёл здесь упрощённый пример. Реально itemRenderer-ом может выступать любой компонент и необходимо, что бы высота ячейки подстраивалась под варьируемую высоту itemRenderer.


Последний раз редактировалось zorexundra; 15.02.2012 в 13:14.
Старый 16.02.2012, 00:25
droopy вне форума Посмотреть профиль Отправить личное сообщение для droopy Найти все сообщения от droopy
  № 4  
Ответить с цитированием
droopy

Регистрация: Dec 2011
Сообщений: 9
DataGrid выставляет для строки такой размер, какой запросит рендерер при вызове measure() - свойства measuredMinHeight и measuredHeight. Попробуйте вот такой рендерер - все высоты выставляет по-разному.

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
    override protected function measure():void
    {
          super.measure();
          var normalHeight:Number = this.measuredHeight;
          this.measuredMinHeight = this.measuredHeight = normalHeight * Math.random() * 2;
    }
]]>
</mx:Script>
	<mx:Label text="aaa"/>
	<mx:Button label="bbb"/>
</mx:VBox>

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:34.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.