Bonjour,
Mon probleme est simple : J'ai un DataGrid avec une colonne de checkbox (itemRenderer).
Je veux cependant que la checkbox n'apparaisse pas dans la derniere ligne de mon datagrid. Voici ma tentative de code pour l'itemRenderer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <mx:DataGridColumn headerText="Display ?" dataField="display" width="70" textAlign="center" rendererIsEditor="true" editorDataField="selected" itemRenderer="WorldCheckBoxRenderer"/>
Ca marche quand la grille est cree, la checkbox de la derniere ligne est bien cachee, mais quand je change myDataProvider qui alimente mon DataGrid, la CheckBox reapparait. J'ai essaye d'utiliser l'evenement COLLECTION_CHANGE, et bien que je capte l'evenement (je recois l'Alert "in refresh"), ca ne cache pas la checkbox pour autant. En gros mon premier refresh() lors de l'appel de initCB() marche mais pas les refresh suivant()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 <?xml version="1.0" encoding="utf-8"?> <mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initCB()"> <mx:Script> <![CDATA[ import com.model.MyModelLocator import mx.controls.Alert; import mx.events.CollectionEvent; public var model : MyModelLocator = MyModelLocator.getInstance(); public function initCB():void { model.myDataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, handleDataChanged); refresh(); } public function handleDataChanged(event:Event):void{ refresh(); } public function refresh():void { if (listData.rowIndex==model.myDataProvider.length-1){ Alert.show("in refresh"); this.visible=false; } } ]]> </mx:Script> </mx:CheckBox>
J'ai aussi essaye d'utiliser [Bindable("dataChange")] mais sans succes non plus.
Merci d'avance pour vos commentaires!
Partager