Combobox selectedItem

mute

Registered
продължавам с флекса и стигнах до следния проблем
имам датагрид, като някои от полетата се едитват с помоща на combobox
снимка -> http://stoyandelev.com/projects/flex_prob1.jpg
нещо не мога да се оправя със selectedItem така че при едит стойноста да му е тази от грид-а вмомента.

нещата до тук ги правя по следния начин

Код:
<mx:DataGridColumn headerText="Сделка" dataField="tip_sdelka_ime" editable="true">
			<mx:itemEditor>
            <mx:Component>
                <mx:ComboBox initialize="outerDocument.addDataToCombo(event, 'tip')" />
            </mx:Component>
        	</mx:itemEditor>
		</mx:DataGridColumn>

функция
Код:
public function addDataToCombo(event:FlexEvent, type:String) : void {
		switch ( type ) {
			case 'tip':
				ComboBox(event.target).labelField = "ime"
				ComboBox(event.target).dataProvider = tipList ;
			break;
		}
		
		
 	}

tipList ми е ArrayCollection

идеи ?
 
<mx:DataGridColumn headerText="Сделка" dataField="tip_sdelka_ime" editable="true"
editorDataField="selectedItem">
<mx:itemEditor>
<mx:Component>
<mx:ComboBox labelField="ime" dataProvider="tipList" />
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>

Пробвай това.
 
не
сега след едит, ако не избера нищо от комбобокс-а в полето изписа null а досега оставаше празно
 
Код:
 editorDataField="{this.selectedItem}">

И mute, кажи какво точно искаш да направиш, защото не съм сигурен, че схванах.
 
Rado каза:
Код:
 editorDataField="{this.selectedItem}">

И mute, кажи какво точно искаш да направиш, защото не съм сигурен, че схванах.
погледни картинката която съм пуснал по горе.
редактиране на поле от датагруд, като се редактира чрез комбобокс, просто искам при клик, когато се покаже комбобокс-а да е селектирана същата стойност която е била в датагрид-а

а това което сте казали ще пробвам вечерта.
 
хм с това от примера на радо неможах да се справя. за сега това го оставям.
по интересно ми е имали event с който мога да прехвана едитването на това поле, целта ми е след едит да изпратя данните към php/db ( с httpService) и там да се запишат. пробвах с itemEditEnd но нещо не ми се получава.
 
itemEditEnd e евента, който ти тряя, а от моя пример може да копираш item Editora и да смениш само data provider-a.
 
Rado каза:
itemEditEnd e евента, който ти тряя, а от моя пример може да копираш item Editora и да смениш само data provider-a.
това го пробвах снощи но как да прехвана новата стойност на полето
написах си следната функция, но явно не става с selectedItem от грид-а ( предполагам защото евента се изпълнява преди да се промени стойноста на полето )

Код:
public function updateImot() : void {
 		
 		var u_id:Number = new Number(imotiDataGrid.selectedItem.id);
 		var u_cena:Number = new Number(imotiDataGrid.selectedItem.cena);
 		var u_kvad:Number = new Number(imotiDataGrid.selectedItem.kvadratura);
 		
 		
 		var u_http:HTTPService = new HTTPService();
 		
 		var url:String = 'http://' + myhost + 'func.php?type=edit&id=' + u_id + '&cena=' + u_cena + '&kvad=' + u_kvad;
 		Alert.show(u_cena.toString());
 		u_http.url = url
 		u_http.send();
 		
 	}
 
http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_7.html
Трябва да ползваш event object-a
Виж примера на Accessing cell data and the item editor in an event listener
 

Back
Горе