Wie kann ich das ändern des Stammknotens jeder treestore zur Laufzeit?
Wie kann ich das ändern des Stammknotens meiner treestore zur Laufzeit?
Folgende ist meine aktuelle Struktur speichern:
Ext.define('rt.store.userinproject', {
extend: 'Ext.data.TreeStore',
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}],
root: {
expanded: true,
text: "",
user: "",
status: "",
children: [{
text: "Project 1",
pid: 1,
expanded: true,
children: [{
text: "Department 1",
did: 1,
cls: "folder",
children: [{
text: "User 1",
uid: 1,
leaf: true
}, {
text: "User 2",
uid: 2,
leaf: true
}, {
text: "User 3",
uid: 3,
leaf: true
}, {
text: "User 4",
uid: 4,
leaf: true
}, {
text: "User 5",
uid: 5,
leaf: true
}]
}, {
text: "Department 2",
did: 2,
cls: "folder",
children: [{
text: "User 6",
uid: 6,
leaf: true
}, {
text: "User 7",
uid: 7,
leaf: true
}, {
text: "User 8",
uid: 8,
leaf: true
}, {
text: "User 9",
uid: 9,
leaf: true
}, {
text: "User 10",
uid: 10,
leaf: true
}]
}, {
text: "Department 3",
did: 3,
cls: "folder",
children: [{
text: "User 11",
uid: 11,
leaf: true
}, {
text: "User 12",
uid: 12,
leaf: true
}, {
text: "User 13",
uid: 13,
leaf: true
}, {
text: "User 14",
uid: 14,
leaf: true
}, {
text: "User 15",
uid: 15,
leaf: true
}]
}]
}, {
text: "Project 2",
pid: 2,
expanded: true,
children: [{
text: "Department 1",
did: 1,
cls: "folder",
children: [{
text: "User 1",
uid: 1,
leaf: true
}, {
text: "User 2",
uid: 2,
leaf: true
}, {
text: "User 3",
uid: 3,
leaf: true
}, {
text: "User 4",
uid: 4,
leaf: true
}, {
text: "User 5",
uid: 5,
leaf: true
}]
}, {
text: "Department 2",
did: 2,
cls: "folder",
children: [{
text: "User 16",
uid: 16,
leaf: true
}, {
text: "User 17",
uid: 17,
leaf: true
}, {
text: "User 18",
uid: 18,
leaf: true
}, {
text: "User 19",
uid: 19,
leaf: true
}, {
text: "User 20",
uid: 20,
leaf: true
}]
}, {
text: "Department 3",
did: 3,
cls: "folder",
children: [{
text: "User 21",
uid: 21,
leaf: true
}, {
text: "User 22",
uid: 22,
leaf: true
}, {
text: "User 23",
uid: 23,
leaf: true
}, {
text: "User 24",
uid: 24,
leaf: true
}, {
text: "User 25",
uid: 25,
leaf: true
}]
}]
}]
}
});
Derzeit bin ich in der Lage zu zeigen, den ganzen Baum von der Wurzel-Knoten in meiner treepanel.
Nun im store oben möchte ich "Projekt 1", wie meine root-Knoten, wenn Benutzer klicken Sie auf Projekt 1
und "Projekt 2", wie meine root-Knoten, wenn Benutzer klicken Sie auf Projekt 2.
Ist das möglich? Wenn ja, wie? Lassen Sie mich wissen, wenn du etwas brauchst von mir.
- Was meinst du mit ändern Stammknotens? Möchten Sie einen text zu ändern oder alle Hierarchie?
- Vielen Dank für die Antwort. Ich kann sagen, ich möchte zeigen nur einen Teil der Hierarchie. Ich weiß nicht, ob es möglich ist mit extjs. Ich habe bearbeitet Sie meine Frage. In meinem Shop oben möchte ich "Projekt 1" als Stammknotens, wenn Benutzer klicken Sie auf Projekt 1 und dasselbe gilt für Projekt 2. Ich hoffe, das klärt die Frage weiter
Du musst angemeldet sein, um einen Kommentar abzugeben.
1. Wenn Sie versuchen, zu ändern, einen Teil der vorhandenen root-zuerst mußt du halt den root-Knoten. Sie bekommen können, die Ihr root-Knoten mit
getRootNode()
erhältlich mit IhremTreeStore
. Beispiel:Nun, die Daten ändern, können Sie Gebrauch machen von
data
Eigenschaft. Zum Beispiel, wenn Sie müssen, ändern Sie den root node text können Sie:2. Wenn Sie ersetzen die gesamte Knoten-Sie können Gebrauch machen von der
setRootNode()
zur Verfügung, die auch mit IhremTreeStore
. Sie haben, um die entsprechenden Daten Modell verwendet für Ihre TreeStore.Da Sie versuchen, ersetzen Sie Ihren Stamm, die Sie auf jeden Fall verwenden müssen
setRootNode()
. Hier ist ein Beispiel code einbauen der Wurzel:Idealerweise sollte dieser code funktionieren. aber es ist ein kleiner bug in
copy()
verursacht zu brechen, dieser code. Eine temporäre Lösung ist (ich würde nicht empfehlen, ändern library-Dateien) verfügbar ist im forum (siehe obigen link).Andere Weg wäre, um code Ihre eigenen
copy
code wie: