Переменная высота для строк DataGrid в flex

#actionscript-3 #apache-flex #actionscript #flex4.5

#actionscript-3 #apache-гибкий #actionscript #flex4.5

Вопрос:

Привет, ребята, я создаю всплывающее окно текстовой области, в котором я сохраняю свои заметки в таблице данных. Код для таблицы данных приведен ниже.

Теперь, когда я добавляю заметку, ОНА помещается в одну из строк. Теперь все строки имеют одинаковый размер. Я хочу сделать переменную размера такой, чтобы текст помещался в каждой строке. Для заметок с большим текстом высота строк должна быть больше, чтобы прокрутка не требовалась. аналогично, когда данные невелики, высота должна быть небольшой

 <mx:AdvancedDataGrid x="0" y="231" width="872" height="273" fontSize="12" id="dgRecentNotes" horizontalGridLineColor="#01030B" dataProvider="{patientProfile.notes}" horizontalGridLines="true"   variableRowHeight="true">
                        <mx:columns>
                            <mx:AdvancedDataGridColumn headerText="Recent Notes" dataField="noteText" sortCompareFunction="date_sortCompareFunc" resizable="true">
                                    <mx:itemRenderer>
                                        <fx:Component>
                                            <mx:HBox>
                                                <mx:Text width="100%"  height="100%" text="{(data.createdOn.getMonth() 1) '/' data.createdOn.getDate() '/' data.createdOn.getFullYear() ' (' ((data.createdOn.getHours() 1) >9 ? (data.createdOn.getHours() 1) : '0'   (data.createdOn.getHours() 1) ) ' : '   ((data.createdOn.getMinutes() 1) >9 ? (data.createdOn.getMinutes() 1) : '0'   (data.createdOn.getMinutes() 1) )  ')'  'n' data.noteText}"/>
                                            </mx:HBox>
                                        </fx:Component>
                                    </mx:itemRenderer>
                            </mx:AdvancedDataGridColumn>
                        </mx:columns>
                    </mx:AdvancedDataGrid>
 

Ответ №1:

Задайте свойство variableRowHeight="true" для вашей datagrid и задайте свойство wordWrap="true" для вашего столбца datagrid. Обратитесь к этому сообщению в блоге

Комментарии:

1. variableRowHeight=»true» уже установлен, и я также использовал wordwrap для столбца, но не сработал

2. вы используете ItemRenderer, поэтому текст отображается <mx:Text/> просто со статической шириной для вашего столбца datagrid и 100% для Hbox. Я точно не знаю.. это может сработать… (почему вы используете HBox в программе визуализации элементов?)

3. оставьте все как есть. просто не используйте HBox, ваш текст будет соответствовать.

4. Как упоминалось в «grass», пожалуйста, удалите hbox, и он будет работать. ‘variablerowheight’ и ‘wordwrap’ не будут работать для любых средств визуализации гибких контейнеров (таких как Accordion, Box, Canvas, Form, FormItem, LayoutContainer, Panel, PanelItemBase, Tile, ViewStack).

5. @ kbgn27 Но я уже упоминал для datagrid и столбца datagrid без наличия itemrenderer. Здесь в этом случае <mx:Text/> отображается многорядный текст, поэтому нет необходимости в Hbox и настройке wordWrap.