Datagrid : valeur d'un Button et d'une CheckBox dans une cellule
Bonsoir,
Après qques errements concernant une CheckBox dans un Datagrid ( autre post ), je suis confronté à des difficultés au sujet de la valeur d'un Button.
Pour la CheckBox, j'ai obtenu un fonctionnement correct pour la structure suivante :
Code:
1 2 3 4
| var layoutVisuels = [
......
{ field: 'mod', name: 'Sélection', width: '100px', styles: 'text-align: center;', editable: true, type: dojox.grid.cells.Bool}
]; |
Par contre, avec le code ci-dessous, j'ai eu des anomalies concernant la cellule :
Citation:
{ field: 'mod', name: 'Sélection', width: '100px', styles: 'text-align: center;', editable: true, type: dijit.form.CheckBox} //plante!
{ field: 'mod', name: 'Sélection', width: '100px', styles: 'text-align: center;', editable: true, type: dojox.grid.cells.CheckBox} // valeur du jsonStore : [true,false]
De même en écrivant une fonction renvoyant une CheckBox :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| function casacocher() {
var chkb = new dojox.grid.cells.CheckBox({
editable: true
});
return chkb;
}
function casacocher1() {
var chkb = new dijit.form.CheckBox({
editable: true
});
return chkb;
} |
Citation:
{ field: 'mod', name: 'Sélection', width: '100px', styles: 'text-align: center;', formatter: casacocher} // [object Object]
{ field: 'mod', name: 'Selection', width: '100px', formatter: casacocher1} // [Widget ....
J'ai des comportements similaires lors de la construction d'un bouton :
Code:
1 2 3 4
| function myBouton() {
mybouton = new dijit.form.Button({label: "MODIFIER"});
return mybouton;
} |
avec les différents essais pour la structure et les valeurs affichées dans la cellule :
Citation:
{ field: 'mod', name: 'Modification', width: '100px', formatter: myBouton} // [Widget dijit.form.Button, dijit_form_Button_xx]
{ field: 'mod', name: 'Modification', width: '100px', dojoType: dijit.form.Button, formatter: myBouton} // [Widget ....]
{ field: 'mod', name: 'Modification', width: '100px', type: dijit.form.Button, label: 'MODIFIER'} // plante
{ field: 'mod', name: 'Modification', width: '100px', dojoType: dijit.form.Button, label: 'MODIFIER'} // valeur du jsonStore [ 1...n ]
{ field: 'mod', name: 'Modification', width: '100px', dojoType: dijit.form.Button, label: 'MODIFIER', onClick:'javascript:modif();'} // valeur du jsonStore [ 1...n ]
Le seul cas de visualisation correct correspondant à :
Code:
1 2 3 4 5 6
| function myBouton1() {
var mybouton = '<button onClick="javascript:modif();">MODIFIER-1</button>';
return mybouton;
}
{ field: 'mod', name: 'Modification', width: '100px', formatter: myBouton1} |
Mais là, le problème est qu'aucune valeur n'est affectée au bouton !!
L'objet de ces essais étant de récupérer la valeur associée au bouton ou l'un des champs de la ligne afin d'indexer les données qui seront fournies avec la nouvelle page.
Dans certaines des configurations porteuses d'anomalies, l'introduction de onClick: modif() conduisait à l'éxécution de la fonction modif() lors de la construction de la page.
Des indications et des pistes à explorer seraient les bienvenues !!!!
1 pièce(s) jointe(s)
Code du Datagrid avec Button et Checkbox
Hello,
Tout d'abord, merci à l'admin qui à mis en forme certaines parties ( citations ) de mon 1-er message pour le rendre un peu plus lisible : j'y penserai à l'avenir.
Sinon, après avoir enlevé le superflu et mis qques rustines :oops: pour que tout tienne ensemble, le code objet du post est dans le fichier zip joint.
Les fichiers sont organisés comme suit
la racine hpc :
- gestapps.html pour visualiser le pb du bouton dans une colonne Datagrid
- creapp.html pour visualiser le pb de la CheckBox dans une colonne Datagrid
- les 2 fichiers Json utilisés pour la construction des Datagrid
- javascript/ 4 fichiers javascript utilisés par les pages HTML
- les 2 pages HTML font référence à : resources/Dojo-1.3.0/dojo/dojo.js
Les seuls endroits du code concernés par les différents essais sont au niveau de la structure :
- javascript/listvisuels.js -> var layoutVisuels pour ce qui est de la CheckBox
- javascript/listapps.js -> var layoutApps pour ce qui est du bouton 'MODIFIER'
Les # essais apparaissent sous forme de lignes en commentaire
La ligne validée au niveau du Zip fourni conduit à un mauvais affichage de l'objet dans la cellule.
Concernant l'exploitation d'un clic sur un bouton donné, j'ai 2 possibilités :
- pas de valeur affectée au bouton, mais alors je dois récupérer l'item correspondant à la ligne afin de pouvoir indexer le reste de mon traitement ( fournir une nouvelle page avec toutes les valeurs de l'appli sélectionnée ) avec un champ signicatif de la ligne en question, dans le genre à partir de l'item : mydata = jsonStore.getValues(item,"champ1"); Q : comment récupérer l'item?
- associer la valeur du bouton à un champ du jsonstore ( idéalement le N° de l'appli ) Q : Comment effectuer cette association si elle est possible?