У меня есть ItemEditor с ComboxBox. Чтобы улучшить пользовательский интерфейс, я хотел бы выйти из ItemEditor каждый раз, когда пользователь выбирает значение в выпадающем списке. Поэтому ему не нужно щелкнуть по ячейке, чтобы подтвердить свой выбор.Flex dispatchEvent для выхода из ItemEditor
Я сделал это, но он не работает. Зачем ?
private function comboChange(event:IndexChangeEvent):void
{
var dgOrder:DataGrid = owner as DataGrid;
var dgEvent:GridEvent = new GridEvent(GridEvent.GRID_CLICK);
dgEvent.preventDefault();
dgOrder.dispatchEvent(dgEvent);
}
]]>
</fx:Script>
<s:ComboBox id="ddlCurrency" width="100%" dataProvider="{lstCurrencies}" labelField="CurrencyCode"
prompt="Select a currency" change="comboChange(event)"></s:ComboBox>
EDIT после Marcx комментарий:
override public function get value():Object {
trace("get value");
ddlCurrency.selectedIndex = newCountryID;
if (ddlCurrency.selectedIndex == -1 || ddlCurrency.selectedItem.CurrencyID == -1){
updateCurrency(data.OrderID, -1);
return "";
} else if ((lstCurrencies[ddlCurrency.selectedIndex as int] as Object).CurrencyCode.toString() != ddlCurrency.selectedItem.CurrencyCode){
return oldValue;
} else {
updateCurrency(data.OrderID, ddlCurrency.selectedItem.CurrencyID);
return ddlCurrency.selectedItem.CurrencyCode;
}
}
private function comboChange(event:IndexChangeEvent):void
{
var dgOrder:DataGrid = owner as DataGrid;
newCountryID = ddlCurrency.selectedIndex;
dgOrder.setFocus();
}
Когда я выбираю значение на DROPDOWNLIST (это выпадающий раньше), combochange называется и ddlCurrency.selectedIndex является один Я только что выбрал, и как только функция get value() вызывается тем же самым ddlCurrency.selectedIndex, это предыдущий индекс. Это почему я сохраняю новый индекс в переменной, чтобы заставить новый индекс получить значение().
Надеюсь, я сделал свое ясное.
Заранее спасибо. Антуан.
Привет, это работает, но мне нужно сохранить в переменной выбранный индекс, потому что это возвращается к его предыдущей переменной непосредственно перед вызовом функции get(). –
Я не понимаю проблему ... отредактируйте вопрос, добавив функцию getvalue, и почему вы должны сохранить переменную для selectedIndex .. спасибо – Marcx