2012-05-24 11 views
5

Hoy decidí probar spark datagrid en lugar de mx: Datatagrid. Pero aparece un problema: no he encontrado la opción de WordWrap, ¿sabes cómo resolver eso?Cómo agregar wordWrap en spark GridColumn

<s:DataGrid id="scrollableDG" borderVisible="true" editable="true" 
        width="100%" height="{bgSuivi.height-90-90}"> 

//Setup columns for scrollable datagrid 
    var gridColumn:GridColumn = new GridColumn(); 
    gridColumn.dataField="scRub2"; 
    gridColumn.headerText = "Rub1"; 
    gridColumn.width = 80; 
    gridColumn.editable = true; 
    columnLst.addItem(gridColumn); 

    var gridColumn:GridColumn = new GridColumn(); 
    gridColumn.dataField="scRub3"; 
    gridColumn.headerText = "Rub1"; 
    gridColumn.width = 80; 
    gridColumn.editable = true; 
    columnLst.addItem(gridColumn); 

    var gridColumn:GridColumn = new GridColumn(); 
    gridColumn.dataField="scRub4"; 
    gridColumn.headerText = "Rub1"; 
    gridColumn.width = 80; 
    gridColumn.editable = true; 
    columnLst.addItem(gridColumn); 
    scrollableDG.columns = columnLst; 

Gracias

+0

Creo que te refieres a "Spark DataGrid ** ** en lugar de a MX DataGrid" - en lugar de poner un Spark DataGrid * dentro * de un MX DataGrid. El ejemplo de tu código parece confirmar esto, pero pensé que aclararía para todos. Es posible que desee editar la pregunta para reflejar esto :) –

+0

sí, tiene razón – Flex60460

Respuesta

0

[Editar]

Vaya, mi respuesta original se refería al componente MX DataGridColumn, no la chispa GridColumn. Respuesta revisada ...

El representador de elementos predeterminado para la cuadrícula es DataGridItemRenderer y tiene una propiedad de ajuste de palabras que debe establecer en verdadero. No estoy seguro, pero también puede ser que tenga que establecer la propiedad variableRowHeight de la rejilla a la verdadera, así ...

Para hacer esto en MXML, se vería algo como esto:

<s:DataGrid variableRowHeight="true"> 
    <s:itemRenderer> 
     <fx:Component> 
      <s:DataGridItemRenderer wordWrap="true" /> 
     </fx:Component> 
    </s:itemRenderer> 
</s:DataGrid> 
+0

Me aparece un error al intentar usar este código, No se pudo resolver a una implementación de componente. Nota: Veo que es un pseudo código. Veré si encuentro algo similar. –

+1

La clase es

0

Hasta Flex4 .6, no hay s: DataGridItemRenderer, pero hay mx: DataGridItemRenderer. Por lo tanto, el código sería:

<s:GridColumn headerText="foo" labelFunction="fooLabelFunction"> 
    <s:itemRenderer> 
     <fx:Component> 
      <mx:DataGridItemRenderer wordWrap="true" /> 
     </fx:Component> 
    </s:itemRenderer> 
</s:GridColumn> 
+1

Intenté usar mx DataGridItemRenderer y proporciona este error: TypeError: Error # 1009: No se puede acceder a una propiedad o método de una referencia de objeto nulo. \t en spark.components :: Group/addElement() [E: \ dev \ 4.y \ frameworks \ projects \ spark \ src \ spark \ components \ Group.as: 1342] \t at spark.components.gridClases: : GridLayout/createTypicalItemRenderer() [E: \ dev \ 4.y \ frameworks \ projects \ spark \ src \ spark \ components \ gridClasses \ GridLayout.as: 748] \t at spark.components.gridClasses :: GridLayout/updateTypicalCellSizes () –

8

El cartel original no ha seleccionado una respuesta I' Voy a combinar los dos anteriores en uno super answr! : P

Puede activar el ajuste de texto en todas las columnas de la cuadrícula de datos de chispa con variableRowHeight:

<s:DataGrid variableRowHeight="true"> 
</s:DataGrid> 

O puede permitir el ajuste de texto en una columna individual mediante el uso de la palabra envolver propiedad en el procesador de elementos GridColumn por defecto :

<s:GridColumn dataField="fields.description" headerText="Description" > 
    <s:itemRenderer> 
     <fx:Component> 
      <s:DefaultGridItemRenderer wordWrap="true"/> 
     </fx:Component> 
    </s:itemRenderer> 
</s:GridColumn> 

por otra parte, en el ejemplo Columnas de me gustaría recomendar el establecimiento de un ancho si se quiere evitar que las barras de desplazamiento horizontal:

<s:GridColumn width="{dataGrid.width-column1.width-column3.width}" dataField="fields.description" headerText="Description" > 
    <s:itemRenderer> 
     <fx:Component> 
      <s:DefaultGridItemRenderer wordWrap="true"/> 
     </fx:Component> 
    </s:itemRenderer> 
</s:GridColumn> 

Estoy descubriendo que tengo que establecer la altura de la fila variable en verdadero y establecer el ancho de la columna para obtener el comportamiento que estoy buscando.

+0

Estoy buscando algo similar, gracias por compartir. Pero mi otra pregunta es cómo configurar la propiedad wordWrap en el encabezado Columna. En caso de long

Cuestiones relacionadas