我想让我的灵活数据网格请求确认更改当我单击一个单元格来编辑一个值并输入一个偏离原始值的新值百分比。我看不到一个简单的方法来做到这一点。最初,我试图编写一个itemEditorValidatorFunction,它返回一个布尔值。这完全适用于硬编码的返回值,但如果我尝试采取从警报的closeEvent的返回值,该值将被忽略:添加itemEditorValidatorFunction弹出窗口确认到Flexicious Grid
protected function validateGcCap(editor:UIComponent):Boolean{
var warningBPDiffVal:Number = Number(5);
var warningPerCentDiffVal:Number = Number(warningBPDiffVal/1000);
var allowChange:Boolean = true;
var origGcCapVal:Number = Number(managerGrid.getCurrentEditingCell().text);
var newGcCapVal:Number = Number((editor as TextInput).text);
var diffVal:Number = Number(newGcCapVal - origGcCapVal);
if (origGcCapVal > newGcCapVal) {
diffVal = origGcCapVal - newGcCapVal;
}
if (diffVal > warningPerCentDiffVal) {
//Alert.show("you changed the gccap from " + origGcCapVal + " to " + newGcCapVal + " by " + diffVal);
function alertCloseHandler(event:CloseEvent):void{
if (event.detail == Alert.CANCEL) {
allowChange = false;
}
};
var alert:Alert = Alert.show("Are you sure that you want to update gcCap% by more than " + warningBPDiffVal + "bps?",
"Please Confirm", (Alert.OK | Alert.CANCEL),
this, alertCloseHandler);
}
return allowChange;
}
我也试着写的itemEditor为网格:FlexDataGridColumn ,其中我扩展com.flexicious.controls.TextInput,但我无法确定要覆盖哪种方法。我想覆盖该方法,并且只在警报点击确定时才调用超级方法,但是我看不到应该覆盖哪个方法。我尝试覆盖保护功能onTextInput(textEvent:TextEvent):无效,但这没有做任何事。
我将不胜感激这个问题的任何洞察力。
在进行更改之前,您必须获取单元格的引用,然后在alertCloseHandler方法中按下CANCEL将该值设置回原始值。 – 2014-09-08 09:56:32