Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
J'ai réussi à utiliser Dojo DataGrid pour afficher des tableaux de données.
_________________
Première question :
Je voudrais maintenant :
- ajouter deux colonnes au tableau : modifier / supprimer
- dans chaque ligne mettre une image correspondant à modifier / supprimer
- qu'un clic sur un icône (modifier ou supprimer) d'une ligne appelle le controlleur/action correspondant, en passant les paramètres nécessaires
Quelles modifications apporter à cet exemple pour faire cela ?
_________________
Deuxième question :
Dans la vue, j'utilise l'option clientSort="true" pour trier les données.
Lorsque je trie une colonne, Dojo DataGrid renvoit une requête avec les paramètres de tri (nom de la colonne, +/- correspondant à l'ordre du tri).
Peut-on "forcer" la DataGrid à effectuer le tri en mémoire, sans appeler de nouveau le GridStore ?
Merci de partager vos idées.
Jean
Voici mon exemple :
Dans le layout : initialisation Dojo
$this->dojo()->setLocalPath($this->baseUrl().'/dojo/dojo/dojo.js') //js principal de dojo ->addStyleSheetModule('dijit.themes.tundra') // passage de dijit.themes.nom_du_theme_digit ->addStyleSheet($this->baseUrl().'/dojo/dojox/grid/resources/tundraGrid.css') ->setDjConfigOption('locale','fr') // dojo en fr ->setDjConfigOption('parseOnLoad',true) ->setDjConfigOption('usePlainJson',true); echo $this->dojo(); // ne pas oublier d'ajouter le thème du dijit dans le <body> du layout <body class="tundra">
L'action est "vide" : elle ne sert qu'à rendre une vue dans laquelle est tout le code.
Le code de la vue :
<script type="text/javascript"> // AJOUT POUR DOJO DATAGRID dojo.require('dojox.data.QueryReadStore'); dojo.require('dojox.grid.DataGrid'); var gridLayout = [ {name:"id", field:"id",width:"5em"}, {name:"Titulaire", field:"titulaire",width:"5em"}, {name:"Libellé", field:"libelle",width:"auto"}, {name:"Date Publication",field:"datepublication",width:"auto"} ] var store = null; dojo.addOnLoad(function(){ store = new dojox.data.QueryReadStore({ url:"/datagrid/testdata", // c'est l'action qui retourne mes données (id, titulaire...) au format JSON method:"post" }); grid.setStore(store); grid.setStructure(gridLayout); });</script> <div id="grid" dojoType="dojox.grid.DataGrid" jsId="grid" rowsPerPage="20" clientSort="true" store="store" query="{id:'*'}" structure="gridLayout"></div>
Dans le bootstrap :
// Helper DOJO // Le dojo view helpers n'est pas au même endroit que les view helpers standards $view->addHelperPath('Zend/Dojo/View/Helper/','Zend_Dojo_View_Helper');>
Dernière modification par jean (27-05-2010 14:36:20)
Hors ligne
Pages: 1