2012-05-24 17 views
5

Oggi, ho deciso di testare scintilla datagrid invece di mx: Datatagrid. Ma un problema appare: non ho trovato l'opzione wordWrap, sai come risolverlo?Come aggiungere wordWrap on 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; 

Grazie

+0

Penso che tu intenda "Spark DataGrid ** invece ** di MX DataGrid" - piuttosto che inserire un Spark DataGrid * dentro * un MX DataGrid. Il tuo esempio di codice sembra confermare questo, ma ho pensato che avrei chiarito per tutti. Potresti voler modificare la domanda per riflettere questo :) –

+0

sì hai ragione – Flex60460

risposta

0

[Edit]

Ops, la mia risposta originale si riferiva alla componente MX DataGridColumn, non la scintilla GridColumn. Risposta modificata ...

Il renderer di elementi predefinito per la griglia è DataGridItemRenderer e ha una proprietà a capo automatico che è necessario impostare su true. Non è sicuro, ma si potrebbe anche essere necessario impostare la proprietà variableRowHeight della griglia per vero anche ...

di farlo in MXML, sarebbe simile a questa:

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

Ricevo un errore quando tento di usare questo codice, Impossibile risolvere in un'implementazione di un componente. Nota: vedo che è pseudo codice. Vedrò se trovo qualcosa di simile. –

+1

La classe è

0

Fino Flex4 .6, non c'è s: DataGridItemRenderer, ma c'è mx: DataGridItemRenderer. Quindi, il codice sarebbe:

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

Ho provato a utilizzare mx DataGridItemRenderer e viene restituito questo errore: TypeError: Errore # 1009: impossibile accedere a una proprietà oa un metodo di riferimento a un oggetto nullo. \t a spark.components :: Group/addElement() [E: \ dev \ 4.y \ frameworks \ projects \ spark \ src \ spark \ components \ Group.as: 1342] \t su spark.components.gridClasses: : GridLayout/createTypicalItemRenderer() [E: \ dev \ 4.y \ frameworks \ projects \ spark \ src \ spark \ components \ gridClasses \ GridLayout.as: 748] \t su spark.components.gridClasses :: GridLayout/updateTypicalCellSizes () –

8

Il poster originale non ha selezionato una risposta che' Ho intenzione di combinare i due precedenti in uno super rispondere! : P

È possibile attivare il ritorno a capo su tutte le colonne del DataGrid scintilla con variableRowHeight:

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

Oppure è possibile abilitare l'allineamento su una singola colonna utilizzando la parola avvolgere proprietà sul renderer di voci GridColumn di default :

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

Inoltre, nell'esempio colonna della griglia mi consiglia di impostare una larghezza se si vuole evitare che le barre di scorrimento orizzontale:

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

Sto trovando che devo impostare sia l'altezza della riga variabile su true e impostare la larghezza della colonna per ottenere il comportamento che sto cercando.

+0

Sto cercando qualcosa di simile, grazie per la condivisione. Ma la mia altra domanda è come impostare la proprietà wordWrap sull'intestazione della colonna. In caso di