J'ai une grille personnalisée et certaines cellules ont un éditeur de cellules, un Ext.form.TextField, afin de modifier la valeur de la cellule. Voici comment est défini le TextField:Valeur non affichée après avoir perdu le focus sur form.textfield
var labelTextEditor = new Ext.form.TextField({
allowBlank: false,
maxLength: 256,
id: "labelTextEditor",
maxLengthText: Label.conf.ui.javascript.TooLongText,
validateOnChange: true,
validator: function(value) {
console.log(value);
if (value == "" && value.trim() == "") {
return formatMessage(Label.conf.ui.supv.LabelMandatory);
} else
return true;
},
msgTarget: 'under',
listeners: {
focus(a, event, eOpts){
var rowIndex = customFieldGrid.getSelectionModel().getCurrentPosition().row;
if(rowIndex !== undefined && rowIndex !== null){
a.setValue(view.listOfServiceDefinition[0].customFields[rowIndex].labels[userLanguagePrefix]);
}
},
blur(a, event, eOpts){
var cellValue = a.getValue();
if(cellValue !== undefined && cellValue !== null){
a.setValue(cellValue);
}else{
a.setValue("");
}
}
}
});
Lorsque je me concentre sur la cellule, il me conserve la valeur qui était là avant de se concentrer sur la cellule, grâce à l'auditeur de mise au point. Mais quand je perds le focus, la cellule n'affiche rien. Quand je clique dessus, la valeur est affichée à nouveau et peut être éditée. Donc, le problème est que lorsque je perds le focus, la valeur ne peut pas être affichée sur la cellule. J'ai essayé de brouiller l'événement mais n'ai pas aidé ...