2012-05-24 7 views
5

Heute habe ich mich entschieden, spark datagrid anstelle von mx: Datatagrid zu testen. Aber ein Problem erscheint: Ich habe WordWrap Option nicht gefunden, wissen Sie, wie das zu lösen?Wie füge wordWrap on spark hinzu 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; 

Dank

+0

Ich denke du meinst „Spark-Datagrid ** ** anstelle von MX-Datagrid“ - und nicht einen Funken Datagrid setzen * innerhalb * eine MX-Datagrid. Ihr Codebeispiel scheint dies zu bestätigen, dachte aber, ich würde es für alle klären. Sie sollten die Frage bearbeiten zu reflektieren diese :) –

+0

ja du hast recht – Flex60460

Antwort

0

[Bearbeiten]

Hoppla, wurde meine ursprüngliche Antwort auf die DataGridColumn Komponente MX Bezug genommen wird, nicht der Funke GridColumn. Überarbeitete Antwort ...

Der Standard-Elementrenderer für das Raster ist DataGridItemRenderer und es hat eine Wortumbrucheigenschaft, die Sie auf True festlegen müssen. Nicht sicher, aber Sie könnten auch als auch die variableRowHeight Eigenschaft des Rasters auf true gesetzt haben ...

dies in MXML zu tun, es in etwa so aussehen würde:

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

ich einen Fehler, wenn sie versuchen, diesen Code zu verwenden, konnte nicht auflösen auf eine Komponente Implementierung. Hinweis: Ich sehe, es ist Pseudo-Code. Ich werde sehen, ob ich etwas Ähnliches finde. –

+1

Die Klasse ist

0

Bis Flex4 .6 gibt es keine s: DataGridItemRenderer, aber es gibt mx: DataGridItemRenderer. So würde der Code:

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

I mx DataGridItemRenderer zu verwenden versucht, und es gibt diesen Fehler: Typeerror: Error # 1009: Kann nicht auf eine Eigenschaft oder Methode einer null-Objektreferenz zuzugreifen. \t bei spark.components :: Gruppe/addElement() [E: \ dev \ 4.y \ Frameworks \ Projekte \ Spark \ src \ Funken \ Komponenten \ Group.as: 1342] \t bei spark.components.gridClasses: : GridLayout/createTypicalItemRenderer() [E: \ dev \ 4.y \ Frameworks \ Projekte \ spark \ src \ spark \ Komponenten \ GridClasses \ GridLayout.as: 748] \t bei spark.components.gridClasses :: GridLayout/updateTypicalCellSizes () –

8

Das ursprüngliche Plakat keine Antwort ausgewählt habe ich m werde die vorherigen zwei zu einem kombinieren super answer! : P

Sie können den Zeilenumbruch für alle Spalten auf dem Spark-Datagrid mit variableRowHeight aktivieren:

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

Oder Sie Zeilenumbruch auf einer einzelnen Spalte unter Verwendung der Zeilenumbruch-Eigenschaft auf dem Standard-Gridcolumn Elementrenderers aktivieren :

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

im Grid Column Beispiel des Weiteren würde ich eine Breite Einstellung empfehlen, wenn Sie horizontale Bildlaufleisten verhindern wollen:

<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> 

Ich finde ich sowohl variable Zeilenhöhe auf true gesetzt haben und setzen Sie die Spaltenbreite um das Verhalten zu bekommen ich suche.

+0

Ich suche etwas gleich, danke fürs Teilen. Aber meine andere Frage ist, wie man die wordWrap -Eigenschaft auf die Spaltenüberschrift setzt. Im Fall von lang