Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-06-2008, 08:52   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
Event abfangen aus ItemRenderer Komponente

Hallo zusammen,

hoffe die Überschrift ist richtig gewählt
Hier mal mein Beispielcode

Code:
<mx:DataGrid id="grid" width="435" height="100%" fontSize="8" dataProvider="{dp}" click="eventListener(event)">
  <mx:columns>
    <mx:DataGridColumn headerText="No." width="40" dataField="number">
      <mx:itemRenderer>
        <mx:Component>
         <mx:LinkButton label="test" enabled="true">
           <mx:id>linkButton</mx:id>
         </mx:LinkButton>
       </mx:Component>
     </mx:itemRenderer>
    </mx:DataGridColumn>
    <mx:DataGridColumn headerText="Type" width="150" dataField="type"/>
    <mx:DataGridColumn headerText="search for" width="150" dataField="search"/>
    <mx:DataGridColumn width="15" id="xb">
      <mx:itemRenderer>
        <mx:Component>
          <mx:Button label="X" paddingLeft="0" paddingRight="0" paddingBottom="0" paddingTop="0"/>
        </mx:Component>
      </mx:itemRenderer>
    </mx:DataGridColumn>
  </mx:columns>
</mx:DataGrid>
Meine Frage ist nun, wie ich die Click-Events des LinkButtons und des normalen Buttons abfangen kann!?
Im EventListener fange ich MouseEvent.CLICK ab, aber als Target erhalte ich nur InlineComponentx_xxx.
Wie kann ich das genaue Ziel ausfindig machen?!

Danke und Gruß,
Doesel
Doesel ist offline   Mit Zitat antworten
Alt 24-06-2008, 08:57   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Vergib doch eine id. Die sollte doch im Dokument zu Verfügung stehen.
Omega Psi ist offline   Mit Zitat antworten
Alt 24-06-2008, 09:04   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
Hey,

also beim LinkButton habe ich ja eine ID vergeben, aber die wird nicht angezeigt, bzw. ich kann nicht auf sie verweisen (this.linkButton gibts nicht). Wenn ich es so versuche
Code:
<mx:Button id="xy"/>
sagt er, dass das nicht möglich sei (id attribute is not allowed in the root tag of a component).
Doesel ist offline   Mit Zitat antworten
Alt 24-06-2008, 09:11   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Nein, das geht auch nicht.

my.MyComponent.mxml
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel height="300" layout="absolute" width="400"
		xmlns:mx="http://www.adobe.com/2006/mxml">
	<!-- In dem root Tag darfst du keine id vergeben -->
</mx:Panel>
MyApplication.mxml
Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="absolute" xmlns:mx="http://www.adobe.com/2006/mxml"
		xmlns:my="my.*">
	<my:MyComponent id="myComponent" />
</mx:Application>
Omega Psi ist offline   Mit Zitat antworten
Alt 24-06-2008, 09:23   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
Dass es bei Komponenten nicht möglich ist war mir bewusst, das hatte ich selber schonmal rausgefunden, aber ich wusste nicht dass es so wie versucht nicht geht.
Leider bringt aber auch dein Ansatz keine Hilfe, wäre ja auch zu schön gewesen

Code:
<mx:DataGridColumn width="15" id="xb">
  <mx:itemRenderer>
    <mx:Component>
      <view:myButton id="xButton"/>
    </mx:Component>
  </mx:itemRenderer>
</mx:DataGridColumn>
selbe Fehlermeldung... Komponente myButton hab ich natürlich angelegt etc.
Doesel ist offline   Mit Zitat antworten
Alt 24-06-2008, 13:00   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
so, bin ein Stück weiter...

wenn ich so...
Code:
<mx:DataGridColumn headerText="No." width="40" dataField="number">
  <mx:itemRenderer>
    <mx:Component>
      <mx:LinkButton label="test" enabled="true">
        <mx:id>linkButton</mx:id>
      </mx:LinkButton>
    </mx:Component>
  </mx:itemRenderer>
</mx:DataGridColumn>
... eine ID vergebe bekomme ich bei event.target.id (war mir nicht bekannt dass es das gibt) die ID der Komponenten zurück. Leider weiss ich dann aber noch nicht, um welche Komponente es sich genau handelt (also welcher Button aus welcher Zeile gedrückt worden ist) und außerdem gibts nen Fehler beim Debuggen, wenn ich ins DataGrid und nicht auf die Buttons klicke.
Es muss doch auch noch irgendwie anders zu regeln sein oder?!
Doesel ist offline   Mit Zitat antworten
Alt 24-06-2008, 13:04   #7 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Und was ist mit DataGrid#selectedItem?
Omega Psi ist offline   Mit Zitat antworten
Alt 24-06-2008, 13:11   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Und was ist mit DataGrid#selectedItem?
selectedItem:
[object Object]

Index wird korrekt angezeigt, aber damit kann ich nicht arbeiten leider..
Doesel ist offline   Mit Zitat antworten
Alt 24-06-2008, 13:30   #9 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Ja, aber du musst ja an den Inhalt des Objekts kommen. ich weiss ja nun nicht, was du in das Grid reinsteckst? Generische Objekte?
Omega Psi ist offline   Mit Zitat antworten
Alt 24-06-2008, 13:51   #10 (permalink)
Neuer User
 
Registriert seit: Mar 2008
Beiträge: 50
zu Testzwecken ganz normale Daten, also nichts was ich noch umwandeln müsste. War übrigens natürlich mein Fehler, wenn ich mit z.B.

Code:
datagrid.selectedItem.number
drauf zugreifen will klappts auch mit der Ausgabe.

Was aber dennoch nicht die Lösung für mein Problem ist, denn ich bräuchte ja eigene eventListener für meine ItemRenderer Komponenten! Ich muss also unterscheiden können zwischen den Komponenten, die ich klicke und auch der entsprechenden Zeile..
Doesel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele