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