J'essaie de récupérer le nœud sélectionné, le cas échéant, d'un TreePanel lorsque l'utilisateur clique sur un bouton. Comment récupérez-vous le nœud select dans un TreePanel? Merci.Comment puis-je trouver le nœud sélectionné dans un TreePanel ExtJS?
Répondre
Ce que vous feriez serait de créer un gestionnaire d'événements. Chaque objet ExtJs a un nombre d'événements qui leur sont automatiquement associés. Vous devez écrire un gestionnaire d'événements (une fonction) que vous pouvez ensuite affecter à un écouteur d'événement. Dans ce cas, vous voudrez probablement affecter un gestionnaire d'événement à l'événement 'click' de votre composant TreePanel.
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
};
Mais que se passe-t-il si vous voulez connaître un noeud déjà sélectionné? À ce stade, vous devrez accéder au modèle de sélection du TreePanel. Vous avez mentionné une action sur un bouton. Disons que vous vouliez appliquer une fonction que le gestionnaire de bouton de clic pour obtenir le nœud sélectionné:
var btn = new Ext.Button({
text: 'Get Value',
handler: function (thisBtn,event){
var node = Ext.fly('navTree').getSelectionModel().getSelectedNode();
}
});
Vous avez utilisé l'élément de poids mouche pour obtenir une référence rapide à la TreePanel lui-même, puis utilisé cette méthode interne de TreePanel pour obtenir la C'est le modèle de sélection. Après cela, vous avez utilisé la méthode interne de ce modèle de sélection (dans ce cas, la méthode interne DefaultSelectionModel) pour obtenir le nœud sélectionné.
Vous trouverez une mine d'informations dans la documentation Ext JS. L'API en ligne (et hors ligne AIR) est assez étendue. Le manuel Ext Core peut également vous donner une bonne idée du développement d'ExtJS, même si vous n'utilisez pas le Core directement.
var selectednode = tree.getSelectionModel().getSelectedNode();
//alert(selectednode);
if(selectednode!=tree.getRootNode())
selectednode.remove();
@ Steve
Ext.fly('navTree').getSelectionModel().getSelectedNode();
ne va pas travailler, utilisez
Ext.getCmp('navTree').getSelectionModel().getSelectedNode();
à la place.
Ext JS 4 vous pouvez mettre un écouteur sur le panneau d'arbre comme celui-ci:
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;
}
}
}
Cela a été bon, car l'exemple que j'ai trouvé n'a pas répondu à click et nécessaire itemclick. Je suppose que les temps de l'événement ont été mis à jour. –
var myTree = Ext.getCmp('tree-panel');
var selectednode = myTree.selModel.selNode
Pour ExtJS 4 ...
J'ai ajouté l'auditeur suivant dans mon panneau d'arbre :
listeners:
{
itemclick: function(view, record, item, index, e)
{
selected_node = record;
}
}
où noeud_élément est une variable globale. Des fonctions telles que append et supprimer peuvent être utilisés avec cette variable d'enregistrement .: par exemple
selected_node.appendChild({text: 'New Node', leaf: true});
selected_node.remove();
J'ai créé des boutons pour le nœud Ajouter et Supprimer le noeud qui utilisent le ci-dessus pour ajouter et supprimer des nœuds au nœud sélectionné. remove() supprimera le nœud sélectionné ainsi que tous les nœuds enfants!
Vous pouvez également obtenir le nœud sélectionné tout moment en utilisant (la sélection se produit avec la gauche ainsi que de cliquer droit de la souris). var = SELECTED_NODE Ext.getCmp ('tree_id') getSelectionModel() getSelection() [0. ]
Dans ExtJS4, vous pouvez utiliser la méthode getLastSelected() qui renvoie le dernier élément sélectionné dans une arborescence.
Voir ExtJS: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.selection.Model-method-getLastSelected
Un exemple pourrait ressembler à ceci:
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);
}
Ceci est pour 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!');
}
}
}]
});
Une explication de ce code aurait été bien. –
simple ....
itemclick: function(view, record, item, index, e)
{
alert(record.data.text);
}
- 1. extjs charger l'image dans TreePanel
- 2. ExtJS: comment avoir un TreePanel avec plusieurs racines?
- 3. Comment: mettre en surbrillance le nœud sélectionné dans un UltraTree
- 4. Comment trouver un nœud XML spécifique?
- 5. Extjs TreePanel: Comment puis-je masquer des nœuds par classe ou par attribut?
- 6. ASP.NET TreeView et sélection du nœud sélectionné
- 7. ASP.Net TreeView Défilement du nœud sélectionné dans la vue
- 8. Comment effacer un arbre dans ExtJs?
- 9. Extjs - Supprimer l'élément sélectionné nouvellement ajouté du magasin
- 10. Trouver et remplacer un nœud d'arbre en C#
- 11. sélecteurs jquery - trouver un enfant du nœud racine
- 12. Comment ajouter un nœud dans TreeView Control avec Javascript
- 13. Comment désactiver un nœud dans l'arborescence Silverlight?
- 14. Trouver l'index de caractère d'un nœud dans son nœud parent avec hpricot
- 15. Comment écrire l'esperluette dans un nœud attribué?
- 16. C# Xpath requête pour trouver un seul nœud
- 17. Comment obtenir le style du texte sélectionné dans un JTextPane?
- 18. Comment sélectionner le nœud parent d'un nœud enfant?
- 19. extjs: Comment remplir la zone de liste déroulante avec les enfants immédiats du noeud d'arbre?
- 20. L'utilisation de XPath pour trouver la valeur d'un attribut dans un nœud basé sur un autre attribut dans le même nœud?
- 21. Comment puis-je trouver actuellement sélectionné (ou actif) Row dans un UltraGrid
- 22. ExtJS et Rails: Comment transmettre des données à ExtJS
- 23. Comment intercepter le dernier nœud ouvert/développé d'un arbre Flex
- 24. Comment puis-je trouver le noeud sélectionné de l'arborescence lorsque je clique sur le bouton droit
- 25. Trouver un nœud de texte en xml en utilisant le problème xpath
- 26. actualiser une page dans extjs
- 27. Editer le nœud Xml
- 28. Comment désactiver le gestionnaire de clic sur un nœud YUI?
- 29. extjs: Modification de la valeur d'un noeud
- 30. Comment mettre à jour un nœud XML?
Ça a marché, merci! –
Content de pouvoir aider –
Dans ExtJS 4+, il n'y a pas de méthode 'getSelectedNode()' dans 'Ext.selection.Model', mais il y a' getSelection() '. –