Domanda

sto tirando dati XML per determinare le colonne sono visibili, e la larghezza di ciascuna colonna. la larghezza del mio DataGrid può cambiare la sua sinces su un lato di un HDividedBox. La parte visibilità funziona, ma impostando la larghezza sta causando mal di testa. Heres il codice:

for(loop through column data retrieve from XML)
{ 
    newData[i] = dg.columns[Number(columnsOrder[i]) - 1];
    newData[i].visible = (Number(columnsVisibility[i]) == 1);
    newData[i].width = Number(columnsWidth[i]);
    trace(newData[i].headerText + " w:" + newData[i].width.toString() + " v:" + newData[i].visible.toString());
}
dg.columns = newData;
dg.invalidateList();

Nella traccia la larghezza è corretto per i primi due elementi, tuttavia, la sua appare come "20" per una sempre consecutivi ...

Date w:240 v:true
Title w:184 v:true
Requestor w:20 v:true
Approved By w:20 v:true
Category w:20 v:false
Status w:20 v:false
Priority w:20 v:false

Quando ho numero dell'uscita (columnsWidth [i]) si presenta come il valore corretto in modo da qualcosa di strano sta accadendo nella assegnazione della larghezza.

stato a guardare questo per un paio d'ore ormai, e hanno provato diverse cose per cercare di risolvere il problema senza alcun risultato.

È stato utile?

Soluzione

  
    

la larghezza del mio DataGrid può cambiare la sua sinces su un lato di un HDividedBox.

  

Questo è il problema proprio lì.

Ho affrontato lo stesso problema con Flex 2 e Flex larghezza di 3 DataGridColumn di ogni volta che la larghezza per il DataGrid non è stato risolto. L'unica soluzione che ho avuto è stato quello di fissare la larghezza del DataGrid o interruttore per AdvancedDataGrid o ad altri componenti simili.

Altri suggerimenti

Ho fatto la stessa cosa in AdvancedDataGrid e funziona. Prova impostando questi valori

  horizontalScrollPolicy="on"
  width="100%

e quindi aggiungere colonne si dovrebbe lavorare con HDividedBox.

È possibile raggiungere questo obiettivo, è quello che credo sia un bug nel DataGrid per sé.

Se si imposta minWidth = "0" e horizontalScrollPolicy = "{} ScrollPolicy.AUTO" sulla DataGrid, è possibile quindi creare oggetti DataGridColumn con larghezze fisse e farlo essere obbedito correttamente.

Tuttavia, sembra esserci ancora un problema con la colonna finale, quando il DataGrid è ancora più grande, allora la somma di tutte le larghezze fisse, allungherà la DataGridColumn finale fuori.

Si potrebbe ottenere intorno a questo con l'aggiunta di una colonna vuota alla fine senza testo intestazione ecc.

Ok - che abbiamo eseguito in questo noi stessi, mentre la costruzione il supporto per varie modalità di larghezza della colonna. Solo un piccolo frammento di informazione - se si desidera impostare la larghezza in modo esplicito, assicuratevi di fare qualcosa di simile:

var oldPolicy:String = grid.horizontalScrollPolicy;
grid.horizontalScrollPolicy ="on"
//set your widths here
grid.horizontalScrollPolicy =oldPolicy;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top