Jqgrid Arborescence Adjacencey
Je suis en utilisant Jqgrid Arborescence de modèle dans ma demande et ce que je peux voir, c'est qu'il affiche l'erreur que l'objet ou la propriété n'est pas pris en charge, j'ai compris grid.Treeview.js et d'autres Jqgrid fichier de script. Je ne sais pas quel peut être le problème.
Et quand j'ai vérifié l'exemple d'application dans le net pour contiguïté arbre et j'ai essayé la même chose, mais asp.net avec les données locales qui je n'ai pas eu. Quelqu'un peut-il m'aider comment faire la même chose.
Merci d'avance
C'est l'exemple de code que im en utilisant et en plus je n'ai pas de savoir si ça va fonctionner ou pas.
var myTreeGrid = new Ext.us.tree.TreeGrid({
columns: columnsConfig,
rootVisible: false,
root: rootNode,
loader: new Ext.ux.tree.TreeGridLoader({preloadChildren: true})
});
var rootNode = $('#treegridsamp').jqgrid({
treeGrid: true,
treeGridModel: 'adjacecncy',
ExpandColumn: 'name',
datatype: "local",
mtype: 'Get',
colNames: ['id','Name','MenuId','Menu Name'],
colModel: [
{name:'RowId',index:'RowId',width:300,fixed:true},
{name:'Name',index:'Name',width:300,fixed:true},
{name:'MenuId',index:'MenuId',width:300,fixed:true},
{name:'MenuName',index:'MenuName',width:300,fixed:true},
],
root:[
{id:"1",Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
{id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2"},
{id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3"}
],
pager: '#dvtreegridsamp',
Caption: 'Sample Tree View Model'
})
$("#treegridsamp").jqGrid('navGrid', '#dvtreegridsamp',
{ edit: false, add: false, del: false, search: false, refresh: false });
var mydata=[
{id:"1", Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
{id:"2", Name:"Main Menu1", MenuId:"2",MenuName:"Menu2"},
{id:"3", Name:"Main Menu2", MenuId:"3",MenuName:"Menu3"},
{id:"1.1", Name:"Sub Menu", MenuId:"1",MenuName:"Menu1"},
{id:"1.2", Name:"Sub Menu1", MenuId:"1",MenuName:"Menu1"},
{id:"1.1.1",Name:"Sub Sub Menu",MenuId:"1",MenuName:"Menu1"},
{id:"2.1", Name:"Main Menu", MenuId:"2",MenuName:"Menu2"},
{id:"2.2", Name:"Main Menu", MenuId:"2",MenuName:"Menu2"},
{id:"3.1", Name:"Main Menu", MenuId:"3",MenuName:"Menu3"},
{id:"3.2", Name:"Main Menu", MenuId:"3",MenuName:"Menu3"},
];
for(var i=0;i<mydata.length;i++) {
$("#treegridsamp").jqGrid('addRowData',i+1,mydata[i]);
}
pourriez-vous ajouter à votre question avec le JavaScript et des données de test qui peut être utilisé pour reproduire votre problème? Votre description du problème est trop général.
J'ai attaché Veuillez voir et m'aident à savoir ce dans une meilleure façon pour que je puisse aller plus loin
Qu'est-ce que
Je voulais dire que vous utilisez mal de cas en
Au lieu de l'utilisation
J'ai attaché Veuillez voir et m'aident à savoir ce dans une meilleure façon pour que je puisse aller plus loin
Qu'est-ce que
Ext.us.tree.TreeGrid
et Ext.ux.tree.TreeGridLoader
? Pourquoi vous utilisez $('#treegridsamp').jqgrid
et pas $('#treegridsamp').jqGrid
?Je voulais dire que vous utilisez mal de cas en
$('#treegridsamp').jqgrid({treeGrid: true, treeGridModel: 'adjacecncy',...
vous devez utiliser $('#treegridsamp').jqGrid({...
à la place (jqGrid et non jqgrid).Au lieu de l'utilisation
addRowData
après la grille est définie. il est mieux d'utiliser directement data:mydata
paramètre de jqGrid. Le RowId
colonne n'est pas défini dans vos données. Voulez-vous renommer le nom de la colonne à id
?OriginalL'auteur hkv | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Vous code simple petite erreur, mais le principal problème que vous avez, c'est que votre code pour ajouter des lignes simples et pas les nœuds de l'arborescence. Vous pouvez aller sur la démo officielle de la page et choisissez dans "Nouveau dans la version 3.4," la démo "Grille Arbre d'Adjacence modèle".
J'ai écrit la démo qui fonctionnent exactement comme la démo de la démo de l'trirand page de démonstration, mais utilisation des données locales:
Dans votre cas vous devez prolonger les objets de
mydata
avec les propriétéslevel
,parent
,isLeaf
,expanded
:Ici, j'ai un peu modifié les valeurs d'id, car les points ne doivent pas utilisé dans les id. De plus, j'ai mis le
expanded
statut de "Menu1" àtrue
de démontrer seulement que vous pouvez élargi certains nœuds automatiquement immédiatement après le chargement.J'ai modifié le jqGrid définition à la suite de
J'ai fait la 'colonne' id cachés et réduit la taille de la grille. Pour ajouter les données que j'ai utilisé
addJSONData
méthode, car il va définir l'arborescence de nœudsQue le résultat vous recevrez
Vous pouvez voir la démo en direct ici.
Mis à JOUR: Si vous utilisez jqGrid version 4.0 ou supérieur, il est important de définir
loaded:true
propriété pour les nœuds de l'arborescence si vous voulez avoir élargi. Par exemple, dans l'exemple ci-dessus le "Menu1" le point est un noeud (isLeaf:false
) qui doit être l'affichage étendu (expanded:true
), donc on doit ajouterloaded:true
pour l'élément de définition:Pour plus d'exemples, voir ici, ici, ici et ici.
Mise à JOUR 2: Pour avoir le tri fonctionne correctement il faut utiliser
parent:null
ouparent:"null"
au lieu deparent:""
voir ici pour plus de détails.Vous êtes les bienvenus! J'ai vu que vous a 0 vote dans votre profil. Probablement vous ne savez pas, que, à partir de 15 points de réputation, vous avez le droit de voter toute réponse ou question. Il y a la règle est simple: "Comme vous le voyez de nouvelles réponses à votre question, de voter utile en cliquant sur la flèche pointée vers le haut à gauche de la réponse.". Le vote est très important pour la stackoverflow et je vous recommande de l'utiliser.
Je voulais écrire dans trirand forum petite suggestion à faire de petits changements dans jqGrid code pour permettre d'utiliser
data
avec grille arbre sans nécessaire de faire appel de plus deaddJSONData
. Alors, j'espère que dans la prochaine version de jqGrid il sera pas plus nécessaire.Comme je l'ai promis, j'ai posté la suggestion pour faire de petits changements dans jqGrid code, de sorte que le
data
paramètre peut être utilisé directement.Oleg, je vous remercie beaucoup pour votre clair, concis, réponse détaillée, votre exemple, et pour le suivi de semaines plus tard, avec des informations pertinentes. J'ai eu du mal avec ce sujet pendant des heures avant d'enfin trouver ce débordement de pile de la page et vous avez répondu à ma question immédiatement. Je souhaite que je pourrais jusqu'vote vous plus d'une fois. Cheers, Lee.
OriginalL'auteur Oleg