Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-05-2010 11:18:32

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

[ZF 1.10] Questions pour améliorer mes Dojo DataGrid

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

Code:

$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 :

Code:

<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 :

Code:

       // 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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages