| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
| Drag beschränken im DataGrid
Hallo Zusammen. Ich habe gerade ein Problem mit meinem Datagrid in verbindung mit Drag&Drop und bei Tante Goolge kann ich dazu nichts finden ![]() Es geht um Folgendes: Ich habe ein DataGrid mit diversen Spalten. In meiner ersten Spalte befindet sich ein Bild. Nun möchte ich, dass man die Spalte nur dann verschieben kann wenn man dieses Bild zum verschieben nutzt. Momentan kann ich überall in der Zeile (also egal welche Spalte) anklicken und die gesammte Zeile verschieben. Mein Programm ist momentan folgendermaßen aufgebaut: Mein Ausgangs-DataGrid hat die Eigenschaft dragEnabled="true" Mein Ziel-DataGrid hat die Eigenschaft dropEnabled = "true" und einen DragDrop-Listener der die Daten annimmt. (Beide DataGrids wurden als Komponente in MXML angelegt) Um mein Problem anzugehen muss ich ja schon bei dem Ausgangs-DataGrid anfangen?! Deswegen hatte ich mir überlegt, dass ich dem DataGrid den Listener dragStart-Event hinzufüge um abzufragen welche Spalte versucht wird zu verschieben und des dann zu verhindern. Allerdings schaffe ich es nicht die Spalte des DragEvents zu bekommen. Das DragEvent hat ja die Eigenschaft actualColIndex. Diese Eigenschaft müsste doch eigentlich die Richtige sein?! Bei mir ist sie nur immer "0". Wie kann man nun verhindern, dass man ein beliebiges Element des DataGrids verschieben kann? Am Besten wäre es, wenn ich über die Eigenschaften des DataGrids verhindern könnte. Hatte jemand schonmal das Problem und kann mir weiterhelfen? MfG Monk p.s. wenn weitere Informationen benötigt werden reiche ich diese gerne nach. Ich schreibe auch auch Beispielprogramm falls nötig
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
|
Ich greife einfach mal mein altes Topic auf da es noch damit zu tun hat. Vorgeschichte: Mein DataGrid hat für jede Spalte einen ItemRender. Allerdings verursacht ein ItemRenderer folgenden Fehler: sobald dieser zugewiesen ist kann man die Zeile nur noch über das Element in der ersten Spalte aktivieren. Daraus ergibt sich das Problem, dass man Einträge entweder über nur über das erste Element ziehen kann oder erst über dieses mit der Maus fahren muss. Wenn man die Zeile weiter hinten "anpackt" und verschieben möchte nimmt er als Drag-Objekt das Element was als letztes mit der Maus überfahren wurde. Wenn man noch kein "erstes Element" aktiviert hat gibt es leere Daten. Problem: Dieser ItemRenderer verhindert die normalen DataGrid-Auswahl Eigenschaften: PHP-Code: )MfG Monk EDIT: Hier mal ein Beispielprogramm bei dem man das "Phänomen" gut erkennen kann: PHP-Code: PHP-Code:
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 Geändert von dr monk (29-06-2011 um 12:33 Uhr) Grund: EDIT: Beispielprogramm hinzugefügt |
| | |
| | #3 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.146
|
Was ich nicht verstehe: wieso implementierst du das Ding nicht LiveCycle konform, so wie schon in so manchen von mir gezeigten Beispielen illustriert? Das wäre dann wesentlich performanter, denn die Labels werden nur einmal gebaut, nicht bei jedem setzen von data. Leichter zu debuggen wäre es auch. Ich hab keine Idee, was removeAllChildren für Seiteneffekte auslöst, die sich auf das DnD auswirken könnte.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Sep 2006
Beiträge: 620
| Problem gelöst ;-)
Mit folgendem Code funktioniert es. Ich habe super.data value zuweisen und die entsprechenden stellen mit data erstezen müssen. PHP-Code: Das ist wahscheinlich genau die Schwachstelle bei dem Code die Omega Psi gemeint hat. Ich habe bisher keine Fehler beim Drag and Drop feststellen können wenn ich die Items mit addChild() hinzufüge. Ich habe ja noch den Code von dem Vorschau-Renderer . Wahrscheinlich sollte ich meine anderen Item-Renderer auch nach diesem Vorbild aufbauen. Vorerst reicht die Funktion so aber erstmal ![]() Danke nochmal an Omega Psi der, nicht nur mir, immer so gut hilft ![]() MfG Monk
__________________ Flash CS5 / Flex 3 / Flashdevelop / FB 4.6 |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.146
|
Die Schwachstelle liegt bei deinem Code an ganz anderen Stellen, wenn ich ganz ehrlich sein soll.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Drag & Drop dataGrid | Argomix | Flex programmieren | 8 | 10-06-2010 12:55 |
| DataGrid Drag&Drop | Slashwalker | Flex programmieren | 1 | 04-05-2008 02:37 |
| Drag beschränken howoto? | D@luxe | ActionScript 1 | 37 | 08-03-2006 13:41 |
| DataGrid mit Drag und Drop | anothermike | Komponenten und SmartClips | 1 | 17-02-2005 11:39 |
| drag beschränken | Christian23 | Flash 4 und Flash 5 | 4 | 27-03-2002 12:46 |