2008-11-07 8 views

Odpowiedz

6

Możesz ustawić każdy wiersz datagridu, aby zmieścił się w oparciu o zawartość konkretnej kolumny tego wiersza, ustawiając atrybut "variableRowHeight" na true w datagrid i ustawiając atrybut "wordWrap" na true w kolumnie dataGridColumn, która będzie zawierać zawartość o zmiennej wysokości.

5

Nie bardzo rozumiem pytanie, ale jeśli pytasz, jak wielkość DataGrid do liczby wierszy w dataProvider, można spróbować:

dataGrid.rowCount = yourCollection.length; 

lub

<mx:DataGrid rowCount="{yourCollection.length}"/> 
1

Najdalszym i najdziwniejszym problemem, jaki miałem z Flexem, było po prostu tworzenie rozmiaru list i DataGrids do ich zawartości (nie pokazywać paska przewijania ani żadnych pustych wierszy). Pomyślałbym, że byłoby to całkowicie proste, nawet przy zmiennych wysokościach rzędów. Wydaje się, że prawie nikt inny nie ma tego problemu ?!

<mx:DataGrid rowCount="{yourCollection.length}"/> 

A wielokrotnie zobacz powyższe rozwiązanie - co nie działa. Dostaję pasek przewijania i dodatkowy pusty wiersz, gdy w kolekcji jest więcej niż jeden element.

+0

Mam ten sam problem. Bardzo denerwujący błąd. Używam wyrażenie wiążące na rowCount i nic się nie dzieje. Nadal dostaję dodatkowy wiersz. – Laxmidi

4

Mam ten sam problem, używając Flex SDK 3.3. Przez lata widziałem kilka raportów o błędach Adobe, ale osoby sprawdzające błędy zawsze twierdzą, że zostały rozwiązane. Najlepsze, co mogę zasugerować jest ustalenie wyraźnego wysokość piksela na DataGrid, można też spróbować:

dg.height = dg.measureHeightOfItems(0, dgDataProvider.length) + dg.headerHeight; 

Bart

+0

Działa świetnie! dzięki – ggkmath

0

Dzięki Brat za odpowiedź, że pracował dla mnie (w sposób). Jest tylko trochę modyfikacji, kiedy obliczyć wysokość używając powyżej obliczenia występują pionowe przewijanie, musimy również ustawić verticalScrollPolicy = "off" tak, że nigdy nie pokazuje

0

Oczywiście, należy unikać w DataGrid MXML coś podobnego height =” 100%”lub top = "10" na dole = "123"

3

Dzięki za tymi słowami:

<mx:DataGrid rowCount="{yourCollection.length}"/> 

- to faktycznie działa na mnie w Flex 4. chciałbym jednak przypomnieć, że zgodnie do dokumentacji "rowCount zawiera wiersz nagłówka", więc przypuszczam, że odpowiedź powinna być

<mx:DataGrid rowCount="{yourCollection.length + 1}"/> 

Niemniej jednak myślę, że doco jest złe, ponieważ poprzednie rozwiązanie działa dla mnie.

W przeciwnym razie, czy to pomaga? http://www.actionscript.org/forums/showthread.php3?t=220962

+0

Wygląda na to, że błąd został naprawiony, aby odzwierciedlić to, co napisano w dokumentacji w flex 4.5 =) – PicoCreator

1
var rwcnt = xmllist.length();// dataprovider.length 

ADG.rowHeight = 20; 

var rht = ADG.rowHeight; 

ADG.height = (rwcnt * rht) + 26; 

to co mam rozwiązanie, aby kontrolować wielkość zaawansowanych DataGrid

1

W Spark DataGrid można ustawić requestedRowCount do dataProviderLength, ale pod warunkiem, ty nie ustawia się wysokość dla Datagrid.

Również dla dostawcy danych o długości mniejszej niż 3, zawsze będzie wyświetlać 3 wiersze.

Uwaga Również firma Spark oferuje nam żądanyMaxRowCount &, który zażądałMinRowCount.

+0

Ponadto, zmiennaRowHeight = "false". – ggkmath

Powiązane problemy