2010-03-24 5 views
1

J'ai des difficultés à créer un jqGridTreeGrid en utilisant des données locales. Cette méthode fonctionne très bien comme une grille régulière si vous commentez les attributs treeGrid et ExpandColumn, mais une fois que vous ajoutez ceux-ci pour en faire une grille, elle ne crée pas de grille d'arbre (elle crée simplement une grille "normale"), et il ne trie plus correctement.jQuery jqGrid TreeGrid ne fonctionnant pas correctement

Je me suis assuré que j'ai téléchargé les fichiers TreeGrid appropriés pendant le téléchargement jqGrid.

jQuery(function(){ 

    var gridOptions = { 
    datatype: "local", 
    height: 250, 
    colNames: ['Name', 'Type', 'Last Modified On', 'Last Modified By'], 
    colModel: [{name: 'name', index: 'name', width: 200, sorttype: 'text'}, 
      {name: 'type', index: 'type', width: 200, sorttype: 'text'}, 
      {name: 'modifiedon', index: 'modifiedon', width: 200, sorttype: 'date'}, 
      {name: 'modifiedby', index: 'modifiedby', width: 200, sorttype: 'text'}], 
    treeGrid: true, 
    ExpandColumn: 'name', 
    caption: "My Grid" 
}; 

    jQuery("#treeGrid").jqGrid(gridOptions); 

var gridData = [ 
    {name: "My File", type: "My File Type", modifiedon: "03/10/2010", modifiedby"Strong Sad", lft: "1", rgt: "8", level: "0"}, 
    {name: "One of Everything", type: "Word Document", modifiedon: "02/12/2009", modifiedby: "Strong Bad", lft: "2", rgt: "5", level: "0"}, 
    {name: "My Presentation", type: "PowerPoint", modifiedon: "01/23/2009", modifiedby: "The Cheat", lft: "3", rgt: "4", level: "0"} 
]; 

for (var i = 0; i < gridData.length; i++) { 
    jQuery("#treeGrid").jqGrid('addRowData', i + 1, gridData[i]); 
} 

}); 
+0

[jqGrid TreeGrid Exemple type de données locale:] (http://www.trirand.com/blog /? page_id = 393/treegrid/json-et-xml-treegrid-complet-sample-résolu /) –

Répondre

2

Il existe également d'autres avertissements dans la documentation TreeGrid et la plupart d'entre eux semblent s'appliquer à ce que vous essayez de faire.

  • Actuellement en ajoutant des noeuds avec addRowData ne sont pas pris en charge.
  • L'ajout de nœuds n'est actuellement pas pris en charge.
  • Actuellement, jqGrid ne peut fonctionner qu'avec les données renvoyées par le serveur.

Il semble que ces trois avertissements s'appliquent à vous. Vous utilisez addRowData vous essayez d'ajouter des nœuds à un arbre "vide" et vous essayez d'utiliser des données locales au lieu de "données retournées par le serveur".

Je vous conseille donc de construire votre échantillon pour correspondre à la Treegrid real world example (se trouve sur le côté gauche, sous « Nouveau dans la version 3.5 »)


La documentation de TreeGrid vous lié aux Etats:

Afin d'utiliser ce module, vous devez marquer le Treegrid lorsque vous téléchargez la grille . Pour plus d'informations, référez-vous à pour télécharger. Pour les développeurs - c'est le grid.treegrid.js dans le répertoire src .

Avez-vous fait cela? Les fichiers js pertinents pour TreeGrid sont-ils inclus dans vos fichiers js pour jqGrid?

Une copie rapide/coller de votre code sur jsbin fonctionne pour moi

http://jsbin.com/afuza/edit (puis cliquez sur le bouton Aperçu)

+0

@jitter Oui, j'ai marqué Treegrid quand j'ai téléchargé les fichiers jqGrid (j'ai tout vérifié). Votre lien ne fonctionne pas dans le sens où ce n'est pas une grille d'arbre, mais juste une grille. En outre, le tri ne fonctionne pas. –

+0

Je sais que ce n'est pas un treegrid ce que je voulais dire était juste que la grille atleast affiche mais bien sûr cela ne marche pas et ce n'est pas une grille d'arbres. Vérifiez la réponse étendue pour plus d'informations – jitter

+0

Merci pour la réponse. Si une grille d'arbre ne peut être utilisée que pour afficher des données statiques, je suis très déçu. –

Questions connexes