Я пытаюсь, чтобы мой Flexical DataGrid попросил подтверждения изменения, когда я нажимаю на ячейку, чтобы изменить значение и ввести новое значение, которое отличается от оригинала определенным процент. Я не вижу простого способа сделать это. Первоначально я попытался написать 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, но я не мог решить, какой метод переопределить. Я хотел переопределить метод и только сделать вызов супер, если Alert был нажат OK, но я не мог видеть, какой метод я должен переопределить. Я попытался переопределить защищенную функцию onTextInput (textEvent: TextEvent): void, но ничего не сделал.
Буду благодарен за понимание этой проблемы.
Вы должны получить ссылку на ячейку перед внесением изменения, а затем в метод alertCloseHandler, ударяющий CANCEL, возвращает значение обратно в исходное. –