Bizarrerie avec getSelectionModel().selectRow()
Bonjour,
version : ExtJs 3.3.1
J'ai un handler sur une checkbox qui doit déclencher un selectRow dans une grid :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
var case_a_cocher = { id:'ma_case',
xtype : 'checkbox',
checked: coche,
boxLabel: 'Masquer les paliers terminés',
name: 'pal_fini',
handler: function() {
Ext.Ajax.request({
url: 'Ajax_cache_PAL.php',
method:"POST",
success: function(result,request) {
palier = PalGrid.getSelectionModel().getSelected();
Cache_myPal = {records : Ext.util.JSON.decode(result.responseText)};
PalGridStore.loadData(Cache_myPal);
if (!palier) {
var fieldName_pal = PalGrid.getColumnModel().getDataIndex(0);
for (var i= 0; i<=PalGrid.getStore().getTotalCount() - 1; i++)
{var record = PalGrid.getStore().getAt(i);
valeur_code_pal = record.get(fieldName_pal);
if (valeur_code_pal == document.PAL.palier.value)
{document.PAL.pal_index.value = i;
PalGrid.getSelectionModel().selectRow(i);
break
}}
}
},
failure: function (result, request)
{Ext.MessageBox.alert("Problème dans l'obtention des paliers", result.responseText) },
params: {prt:projet, masque:Ext.getCmp('ma_case').getValue()}
})
}
}; |
l'objet fonctionne.
Plus loin dans le code, j'appelle le handler :
Code:
1 2 3 4
|
var cochise = Ext.getCmp('ma_case');
cochise.setValue(est_coche);
cochise.handler.call(); |
Je vois grâce à Firebug que le selectRow a bien eu lieu, car les données récupérées sont correctes, en revanche la ligne de la grid ne reste pas "sélectionnée".
Plus bizarre, lorsque je trace le code en pas à pas avec Firebug, tout se déroule normalement et la ligne reste sélectionnée à la fin.
Comment expliquer cette différence de comportement ?