2009-06-11 11 views
2

Ich bin auf der Suche nach einem DataGrid mit erweiterbaren Zeilen Implementierung in Flex. Ich möchte Advanced DataGrid-Steuerelement nicht verwenden, da es zu langsam und zu komplex ist.Flex-DataGrid-Steuerelement mit Erweiterungszeilen

Das gewünschte Verhalten ist folgendermaßen: Wenn Sie auf eine Zeile klicken, wird zwischen den Zeilen mit einigen Details ein Fenster geöffnet und der Rest der Zeilen wird nach unten verschoben. Wenn Sie erneut klicken, wird das Fenster geschlossen und die Zeilen werden wieder angezeigt zu normal. Wenn Sie auf die andere Zeile klicken, wird die erweiterte Zeile minimiert und die Zeile, auf die Sie geklickt haben, wird erweitert.

Antwort

0

Wir haben die Flex Datagrid-Komponente erweitert und dafür einen benutzerdefinierten Elementrenderer verwendet. Wir erweitern tatsächlich eine Zelle und skalieren sie so, dass sie alle anderen Zellen in derselben Zeile abdeckt. Dies ist zwar nicht die einfachste Lösung und das Datagrid ist sehr schnell.

+0

Warum sagen Sie, dass das erweiterte Datagrid zu langsam ist? Wenn ich die anfängliche Frage richtig verstehe, wäre es mit einem erweiterten Datagrid ohne Leistungsprobleme ziemlich einfach, das gewünschte Ergebnis zu erzielen –

0

Sie müssen wahrscheinlich einen benutzerdefinierten ItemEditor verwenden, der auf Klicks reagiert und sich erweitert.

Die Eigenschaft variableRowHeight muss möglicherweise ebenfalls auf true festgelegt werden.

+0

Er hat keine Bearbeitung erwähnt. Das Problem mit dem DataGrid ist auch, dass es keinen Renderer für die gesamte Zeile hat, sondern Renderer für jede seiner Spalten. Also muss er entweder eine Möglichkeit finden, das Detailfenster zwischen die Zeile einzufügen, oder jeden Renderer einen Teil der zusätzlichen Details anzeigen lassen, was ihn hässlich aussehen lassen würde ... –

+0

Deshalb verwenden Sie einen ItemEditor anstelle eines ItemRenderer. Ein ItemEditor wird nur angezeigt, wenn Sie auf die Zelle klicken. – CookieOfFortune

+0

Es tut mir leid, ich sehe immer noch nicht, wie das helfen würde. Es sei denn, Sie können den itemEditor nicht durch Spalten einschränken lassen und unter der angeklickten Zeile erscheinen, ohne den nächsten zu verdecken. –

0

Das Verhalten, das Sie beschreiben, klingt sehr ähnlich wie eine Akkordeon-Komponente, obwohl das nicht ganz nach dem klingt, wonach Sie suchen. Ein anderer Ansatz wäre die Verwendung einer List-Komponente mit einem benutzerdefinierten itemRenderer, der im ausgewählten Zustand (angeklickt) erweitert und bei Nichtauswahl ausgeblendet wird.

+0

Wir haben die Lösung bereits gefunden. Wir haben den Flex DataGrig dafür erweitert und angepasst. – Alexander