Ich versuche, den ausgewählten Knoten, wenn vorhanden, eines TreePanel abzurufen, wenn der Benutzer auf eine Schaltfläche klickt. Wie rufen Sie den Auswahlknoten in einem TreePanel ab? Vielen Dank.Wie finde ich den ausgewählten Knoten in einem ExtJS TreePanel?
Antwort
Sie würden einen Event-Handler erstellen. Jedes ExtJs-Objekt verfügt über eine Reihe von Ereignissen, die automatisch mit diesen verknüpft sind. Sie würden einen Event-Handler (eine Funktion) schreiben, den Sie dann einem Event-Listener zuweisen könnten. In diesem Fall möchten Sie wahrscheinlich dem Click-Ereignis Ihrer TreePanel-Komponente einen Event-Handler zuweisen.
var tbPan = new Ext.tree.TreePanel({
itemId:'navTree',
autoScroll: true,
root: new Ext.tree.TreeNode({
id: 'root',
text: 'My Tree Root',
rootVisible: true
}),
listeners: {
click: {
fn:clickListener
}
}
});
clickListener = function (node,event){
// The node argument represents the node that
// was clicked on within your TreePanel
};
Aber was passiert, wenn Sie einen Knoten kennen möchten, der bereits ausgewählt ist? An diesem Punkt müssen Sie auf das Auswahlmodell von TreePanel zugreifen. Sie haben eine Tastenaktion erwähnt. Angenommen, Sie haben eine Funktion wie die Schaltfläche Click-Handler anwenden wollte den ausgewählten Knoten zu erhalten:
var btn = new Ext.Button({
text: 'Get Value',
handler: function (thisBtn,event){
var node = Ext.fly('navTree').getSelectionModel().getSelectedNode();
}
});
Sie haben das Fliegengewicht Element erhalten einen schnellen Hinweis auf die TreePanel selbst dann verwendet, dass TreePanel internen Verfahren für das Erhalten der es ist Auswahlmodell. Danach haben Sie die interne Methode des Auswahlmodells (in diesem Fall das DefaultSelectionModel) verwendet, um den ausgewählten Knoten zu erhalten.
Sie finden eine Fülle von Informationen in der Ext JS Dokumentation. Die Online API (und Offline AIR App) ist ziemlich umfangreich. Das Ext Core-Handbuch kann Ihnen auch einen großen Einblick in die ExtJS-Entwicklung geben, auch wenn Sie den Core nicht direkt verwenden.
var selectednode = tree.getSelectionModel().getSelectedNode();
//alert(selectednode);
if(selectednode!=tree.getRootNode())
selectednode.remove();
@Steve
Ext.fly('navTree').getSelectionModel().getSelectedNode();
geht nicht,
Ext.getCmp('navTree').getSelectionModel().getSelectedNode();
stattdessen zu arbeiten.
In Ext JS 4 können Sie einen Listener auf dem Baum-Panel so:
listeners: {
itemclick: {
fn: function(view, record, item, index, event) {
//the record is the data node that was clicked
//the item is the html dom element in the tree that was clicked
//index is the index of the node relative to its parent
nodeId = record.data.id;
htmlId = item.id;
}
}
}
Das war gut, da das Beispiel, das ich fand, nicht auf Klicken reagierte und Itemclick brauchte. Ich schätze, die Veranstaltungszeiten wurden aktualisiert. –
var myTree = Ext.getCmp('tree-panel');
var selectednode = myTree.selModel.selNode
Für ExtJS 4 ...
ich folgende Zuhörer in meinem Baum-Panel hinzugefügt haben :
listeners:
{
itemclick: function(view, record, item, index, e)
{
selected_node = record;
}
}
wobei selected_node eine globale Variable ist. Funktionen wie append und entfernen können mit dieser Platte Variable z.B .:
selected_node.appendChild({text: 'New Node', leaf: true});
selected_node.remove();
I Tasten geschaffen für Knoten hinzufügen und löschen Knoten, die die oben verwenden verwendet werden, um anhängen und entfernen Knoten an den ausgewählten Knoten. remove() entfernt den ausgewählten Knoten sowie alle untergeordneten Knoten!
Sie können auch den ausgewählten Knoten jederzeit erhalten mit (die Auswahl erfolgt sowie die rechte Maustaste mit links.): var selected_node = Ext.getCmp ('tree_id') getSelectionModel() getSelection() [0. ];
In ExtJS4 können Sie die Methode getLastSelected() verwenden, die das zuletzt ausgewählte Element in einem Baum zurückgibt.
See ExtJS: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.selection.Model-method-getLastSelected
Ein Beispiel könnte wie folgt aussehen:
var tree = this.up("window").down("supportedcontrolcircuitmodelselector");
var selectedCircuit = tree.getSelectionModel().getLastSelected()
var nodesSelected = Ext.getCmp('foldersTree').getSelectionModel().selected.items;
if(nodesSelected.length > 0)
{
var node = nodesSelected[0];
console.log(node.internalId);
}
Dies ist für ExtJS4 TreePanel
var tree = Ext.create('Ext.tree.Panel', {
store: store,
renderTo: 'tree_el',
height: 300,
width: 250,
title: 'ExtJS Tree PHP MySQL',
tbar : [{
text: 'get selected node',
handler: function() {
if (tree.getSelectionModel().hasSelection()) {
var selectedNode = tree.getSelectionModel().getSelection();
alert(selectedNode[0].data.text + ' was selected');
} else {
Ext.MessageBox.alert('No node selected!');
}
}
}]
});
Einige Erklärung dieses Codes wäre nett gewesen. –
Einfache ....
itemclick: function(view, record, item, index, e)
{
alert(record.data.text);
}
- 1. extjs laden Bild in TreePanel
- 2. ExtJS: Hinzufügen von Einzelklick-Aktion zu einem Knoten in einem TreePanel
- 3. ExtJS Treepanel: CSS Standard-Icons zu ändern (Knoten und Blatt)
- 4. Resizable treepanel in Fenster in ExtJS
- 5. Get JSON Daten von ExtJS TreePanel
- 6. ExtJS: Wie man ein TreePanel mit mehreren Wurzeln hat?
- 7. Wie füge ich ein Kind zu einem Knoten in einem TreePanel hinzu?
- 8. Wie finde ich den entsprechenden Knoten in XML mit Vb.net
- 9. ExtJS: Das Sortieren einer Spalte in einem TreePanel ändert die Reihenfolge der Datensätze der Knoten, nicht nur Blätter
- 10. EXTJS: finde die Knoten-ID eines Baums nach dem Wert
- 11. Extjs threepanel: wie man einen Knoten auf Blattknoten fallen lässt
- 12. Wie finde ich den kürzesten Pfad, der alle Knoten in einem gerichteten zyklischen Graphen abdeckt?
- 13. Graph - Finde den von allen anderen Knoten erreichbaren Knoten
- 14. Wie finde ich die Kategorie des ausgewählten Elements in AutoComplete?
- 15. Wie kann ich den ausgewählten Knoten von Treeview finden, wenn ich den rechten Knopf drücke
- 16. Wie finde ich den ersten "Schlüssel"? In einem Wörterbuch?
- 17. Wie finde ich den Median in einem (Seaborn) KDE-Plot?
- 18. Wie finde ich den nächsten verfügbaren Slot in einem Array?
- 19. Den übergeordneten Knoten des ausgewählten Knotens in RadTreeView abrufen?
- 20. Wie finde ich den Variablentyp in JavaScript?
- 21. Wie finde ich den Dateisystemtyp in Python
- 22. TreeView ausgewählten Knoten Problem
- 23. Wie finde ich den Pfad zum Element in nodejs?
- 24. Wie finde ich den mittleren Knoten in der einfach verknüpften Liste ohne Traversierung?
- 25. Wie finde ich den Index eines Elements mit einem Mindestwert?
- 26. ExtJS - Get rowIndex einer ausgewählten Zeile
- 27. Wie kann ich den Knoten des ausgewählten Elements nach Wert (und nicht Referenz) in Javascript halten?
- 28. Wie finde ich den Bildschirmstatus auf einem Android-Gerät?
- 29. Fetching-ID des übergeordneten Knoten von untergeordneten Knoten in EXTJS
- 30. Eckige Baumansicht ausgewählten Knoten löschen
Das hat funktioniert, danke! –
Froh ich könnte helfen –
In ExtJS 4+ gibt es keine Methode 'getSelectedNode()' in 'Ext.selection.Model', aber es gibt' getSelection() '. –