2009-09-25 5 views
1

J'ai un DataGrid chargé à partir d'un magasin de données XML, tous créés de manière déclarative. Je voudrais définir le tri lorsque les données sont chargées. Tous les exemples que j'ai trouvés traitent de la programmation et indiquent que cela devrait être faisable.Tri d'un DataGrid Dojo de manière déclarative

Ceci est le code qui crée la source de données.

<head> 
    <title>Untitled Page</title> 
    <style type="text/css"> 
     @import "StyleSheet.css"; 
     @import "js/dojotoolkit/dijit/themes/pfga/pfga.css"; 
     @import "js/dojotoolkit/dojo/resources/dojo.css"; 
     @import "js/dojotoolkit/dojox/grid/resources/Grid.css"; 
     @import "js/dojotoolkit/dojox/grid/resources/pfgaGrid.css"; 
    </style> 

    <script src="js/dojotoolkit/dojo/dojo.js" type="text/javascript" djConfig="parseOnLoad: true"></script> 

    <script type="text/javascript"> 
     dojo.require("dojo.parser"); 
     dojo.require("dojox.grid.DataGrid"); 
     dojo.require("dojox.data.XmlStore"); 
     dojo.require("dijit.layout.ContentPane"); 
    </script> 
</head> 

<body class="pfga"> 

<div dojotype="dojox.data.XmlStore" url="events.xml" jsID="eventStore"></div> 

<table dojoType="dojox.grid.DataGrid" store="eventStore" class="pfga" style="height:500px" clientSort="true" jsID="eventGrid"> 
    <thead> 
    <tr> 
     <th field="date" width="80px">Date</th> 
     <th field="description" width="600">Description</th> 
     <th field="DateID" sortDesc="true" hidden="false">DateSort</th> 
    </tr> 
    <tr> 
     <th field="time" colspan="3">Details</th> 
    </tr> 
    </thead> 
</table> 

</body> 
+0

Sérieusement ... personne ne peut aider? Donc je suppose que je vais juste trier les données dans le fichier XML avant qu'il ne soit lu par le lecteur. –

Répondre

0

Il semble que le Trier a commencé à travailler une fois que j'ajouté le JSID pour résoudre mon problème de filtrage

3

Pour mémoire, dans le dojo 1.5, il est le param « SortInfo » transmis à la grille de données. Il utilise la même convention que la fonction 'canSort', c'est-à-dire un nombre indiquant la colonne (commençant à 1) et le signe indiquant la direction du tri.

J'ai ajouté un commentaire à http://docs.dojocampus.org/dojox/grid/DataGrid à cet effet.

Par exemple, cette grille est triée par la colonne « créé » dans « Les plus récents » ordre:

<table dojoType="dojox.grid.DataGrid" clientSort="true" selectionMode="single" 
    formatterScope="formatterScope" dojoAttachPoint="logGrid" sortInfo="-2"> 
    <thead><tr> 
    <th field="clientId" width="10%">Client ID</th> 
    <th field="created" width="20%" formatter="datefmt">Created</th> 
    <th field="message" width="30%" formatter="messagebodyfmt">Message</th> 
    <th field="token" width="10%">Token</th> 
    <th field="type" width="20%">Type</th> 
    <th field="username" width="10%">Username</th> 
    </tr> 
</table> 

Bien sûr, votre choix de magasin et la façon dont il comprend les directives de tri auront un impact plus , par exemple j'utilise JsonQueryRestStore et les résultats du paramètre sortInfo dans la requête de stockage, y compris la syntaxe de tri basée sur dojox.data.JsonQuery et le backend qui gère la requête doit comprendre comment trier les données avant de les renvoyer.

Questions connexes