Banner

Ultima revisión 28/07/2010

Filas de un datagrid de altura variable

Hoy vamos a ver cómo realiar un datagrid con campos largos, que no entrarían en una fila. Por ejemplo un texto descripción de 300 caracteres.


<mx:AdvancedDataGrid id="urlsDataGrid" width="99.99%" height="100%" dataProvider="{dpUrlsList}" styleName="Urls" variableRowHeight="true" verticalAlign="middle">
     <mx:columns>
        <mx:AdvancedDataGridColumn dataField="icono" headerText="" width="62" minWidth="62">
            <mx:itemRenderer>
                <mx:Component>
                    <mx:Image maintainAspectRatio="true" brokenImageSkin="{null}" brokenImageBorderSkin="{null}" horizontalAlign="center" />
                </mx:Component>
            </mx:itemRenderer>
         </mx:AdvancedDataGridColumn>
        <mx:AdvancedDataGridColumn width="200" textAlign="left" dataField="nombre" headerText="Nombre" />
        <mx:AdvancedDataGridColumn textAlign="justify" dataField="descripcion" headerText="Descripción" wordWrap="true" />
        <mx:AdvancedDataGridColumn dataField="url" headerText="" visible="false" />
        <mx:AdvancedDataGridColumn dataField="id"  headerText="" visible="false" />
    </mx:columns>
</mx:AdvancedDataGrid>

Lo primero, es decir que dpUrlsList es una arrayCollection que priviene de un XML creado desde PHP y que tiene la siguiente estructura:


var obj:Object= {"id":item.@id, "nombre": item.@nombre, "descripcion":item.@descripcion, "icono":item.@icono, "url":item.@url};

variableRowHeight="true" verticalAlign="middle"

son para el asunto entre manos, para poder manejar la altura de la fila dinámica e independiente por filas y su alineación.

Y por último, en el AdvancedDataGrid, en la columna del campo "Descripcion" ponemos el parámetro wordWrap="true" que provoca que si la longitud del campo es mayor que la longitud de la columna, se provoque un salto de línea.