我想讓我的靈活數據網格請求確認更改當我單擊一個單元格來編輯一個值並輸入一個偏離原始值的新值百分比。我看不到一個簡單的方法來做到這一點。最初,我試圖編寫一個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