Bonjour,
Je développe une application avec beaucoup d'écrans, de grilles et de formulaires. Le principe simplifié étant toujours le même :
- l'utilisateur arrive sur une grille de données
- il double click sur une ligne
- un formulaire s'affiche avec les données de la ligne
- chaque formulaire dispose d'une barre de navigation pour parcourir les enregistrements de la grille sans quitter le formulaire.
La barre de navigation est définie comme suit puis intégrée dans le formulaire:
Problème rencontré (avec IE uniquement. Fonctionnement correct avec FF) :
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 tool_navigation = { layout: 'table', region: 'north', bodyStyle: 'margin: 5px', autoDestroy: true, id: 'tbl_toolNav', name: 'tbl_toolNav', border: false, cls: 'btnNav', layoutConfig: { columns: 4 }, items: [ {xtype: "button", text: "", iconCls: "ico_first", tooltip: lbl_first, id: 'btn_first', name: 'btn_first', handler: function(){showRecord("first")}}, {xtype: "button", text: "", iconCls: "ico_prev", tooltip: lbl_prev, id: 'btn_prev', name: 'btn_prev', handler: function(){showRecord("prev")}}, {xtype: "button", text: "", iconCls: "ico_next", tooltip: lbl_next, id: 'btn_next', name: 'btn_next', handler: function(){showRecord("next")}}, {xtype: "button", text: "", iconCls: "ico_last", tooltip: lbl_last, id: 'btn_last', name: 'btn_last', handler: function(){showRecord("last")}} ] };
lorsque je clique sur suivant ou précédent il arrive que le formulaire se retrouve d'un seul coup dans la barre des tâches (perte du focus).
Ceci se produit de façon aléatoire quelque soit le formulaire. Je peux cliquer 1 fois sur suivant ou précédent et cela se produit et parfois 3, 4 ,5 ou n fois.
Il n'y a pas de règle.
En revanche, je peux cliquer tant que je veux sur dernier ou précédent : jamais de problème !
Après un click sur la navigation le code suivant est exécuté :
Auriez-vous une idée de ce qui peut poser problème ?
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
33
34
35
36
37
38 function showRecord(sensNav) { var grilleParent = window.opener.grid; if (grilleParent.selModel.getCount() == 1) { switch (sensNav) { case "first": grilleParent.selModel.selectFirstRow(); break; case "prev": grilleParent.selModel.selectPrevious(); break; case "next": grilleParent.selModel.selectNext(); break; case "last": grilleParent.selModel.selectLastRow(); break; default: break; } //recuperation de la cle primaire var recordLine = getProperties(grilleParent.selModel.getSelected().data, true); formulaire.render(document.body); formulaire.form.load ( { //chargement du formulaire avec les donnes de la ligne en cours params: { data_id: recordLine, action: 0, frm_id: formulaire.frm_id } } ); window.focus(); } };
Partager