【发布时间】:2015-08-18 09:20:13
【问题描述】:
我有一个带有 ComboxBox 的 ItemEditor。 为了改善用户体验,我想每次用户在组合框中选择一个值时退出 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>
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是前一个索引。这就是为什么我将新索引保存在变量中以强制获取值()中的新索引。
我希望我说清楚了。
提前致谢。 安托万。
【问题讨论】:
标签: actionscript-3 apache-flex dispatchevent itemeditor