Comment afficher une case à cocher dans une grille de données de Dojo ?
Réponses
Trop de publicités?Je suggérerais de définir cellType sur dojox.grid.cells.Bool, au lieu du formatter. Le formatter vous donne beaucoup de liberté, mais aussi la responsabilité de rassembler les données de toutes les cases à cocher (pour toutes les lignes) par la suite. Quelque chose comme ceci en tant qu'entrée de structure devrait faire l'affaire:
{
name: "est génial?",
width: "auto",
styles: "text-align: center",
type: dojox.grid.cells.Bool, editable: true
}
Veuillez vous assurer d'utiliser un magasin d'écriture (comme ItemFileWriteStore) et non seulement un magasin de lecture, sinon vous ne pourrez pas réellement cocher la case à cocher :)
Utilisez la fonction formatter comme décrit dans Widgets Inside dojo.DataGrid
Vous pouvez retourner un nouveau dijit.form.Checkbox à partir de la fonction formatter dans dojo 1.4
Vous avez besoin du plugin IndirectSelection pour EnhancedGrid, voici un fiddle: http://jsfiddle.net/raybr/w3XpA/5/
Vous pouvez utiliser quelque chose comme ceci, avec Json
HTML
showFields();
DOJO
showFields:function () {
dojo.xhrPost({
url:"/getFields.do",
timeout:2000,
handleAs:"json",
load:dojo.hitch(this, "displayInGrid")
});
},
displayInGrid:function (jsonResult) {
var dataStore = new dojo.data.ItemFileReadStore(
{ data:jsonResult }
);
var checkboxLayout = [
[
{name:'ID', field:"id" },
{name:'Value', field:"id", formatter:this.addCheckBox}
]
];
var grid = dijit.byId("myGrid");
grid.setStructure(checkboxLayout);
grid.setStore(dataStore);
},
addCheckBox:function (val) {
var checkbox = "";
return checkbox;
},
Si vous essayez d'afficher un sélecteur de case à cocher sur chaque ligne de la grille, vous pouvez suivre ce tutoriel
http://dojotoolkit.org/documentation/tutorials/1.8/working_grid/demo/selector.php
- Réponses précédentes
- Plus de réponses