Bonjour,

version : ExtJs 3.3.1

J'ai un handler sur une checkbox qui doit déclencher un selectRow dans une grid :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?