私は、ユーザーがボタンをクリックしたときに、選択されたノードがある場合、それをTreePanelから取得しようとしています。 TreePanelで選択ノードを取得するにはどうすればよいですか?ありがとう。ExtJS TreePanelで選択したノードを見つける方法を教えてください。
答えて
あなたが行うことは、イベントハンドラを作成することです。各ExtJsオブジェクトには、自動的に関連付けられたいくつかのイベントがあります。イベントハンドラ(関数)を記述して、イベントリスナに割り当てることができます。そのため、この場合、おそらくイベントハンドラをTreePanelコンポーネントの 'click'イベントに割り当てる必要があります。
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
};
しかし、既に選択されているノードを知りたい場合はどうなりますか?その時点で、TreePanelの選択モデルにアクセスする必要があります。あなたはボタンアクションについて言及しました。あなたが選択したノードを取得するには、そのボタンのクリックハンドラに関数を適用したいとしましょう:
var btn = new Ext.Button({
text: 'Get Value',
handler: function (thisBtn,event){
var node = Ext.fly('navTree').getSelectionModel().getSelectedNode();
}
});
あなたはその後、取得するためのTreePanelの内部メソッドが使用、TreePanelそのものへのクイックリファレンスを取得するためにフライ級の要素を使用選択モデルです。その後、選択モデル(この場合はDefaultSelectionModel)の内部メソッドを使用して選択ノードを取得しました。
Ext JSドキュメントには豊富な情報があります。オンライン(およびオフラインAIRアプリケーション)APIは非常に広範囲です。 Ext Coreマニュアルでは、Coreを直接使用していない場合でも、ExtJS開発についての多くの洞察を得ることができます。 @Steve
Ext.fly('navTree').getSelectionModel().getSelectedNode();
var selectednode = tree.getSelectionModel().getSelectedNode();
//alert(selectednode);
if(selectednode!=tree.getRootNode())
selectednode.remove();
は、働く代わりに
Ext.getCmp('navTree').getSelectionModel().getSelectedNode();
を使用するつもりはありません。
あなたはこのように、ツリーパネルにリスナーを置くことができるのExt JS 4では:私は私のツリーパネルで、次のリスナーを追加している... ExtJSの4のために
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;
}
}
}
これは良い例でした。私が見つけた例はクリックに反応せず、itemclickが必要でした。私はイベントの時間が更新されたと思います。 –
var myTree = Ext.getCmp('tree-panel');
var selectednode = myTree.selModel.selNode
を:
listeners:
{
itemclick: function(view, record, item, index, e)
{
selected_node = record;
}
}
ここで、selected_nodeはグローバル変数です。追記のような関数と削除は、このレコード変数例えば:
selected_node.appendChild({text: 'New Node', leaf: true});
selected_node.remove();
で使用することができます私は、ノードを追加し、選択したノードにノードを追加したり削除するには、上記を使用してノードを削除するためのボタンを作成しました。 remove()は、選択されたノードとすべての子ノードを削除します。
また、選択したノードをいつでも取得することができます(左から右にクリックすると選択が発生します): var selected_node = Ext.getCmp( 'tree_id')。getSelectionModel()。getSelection()[0 ];
ExtJS4では、ツリー内で最後に選択した項目を返すgetLastSelected()メソッドを使用できます。
ExtJSのを参照してください:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.selection.Model-method-getLastSelected
の例では、次のようになります。これはExtJS4 TreePanel
var nodesSelected = Ext.getCmp('foldersTree').getSelectionModel().selected.items;
if(nodesSelected.length > 0)
{
var node = nodesSelected[0];
console.log(node.internalId);
}
....
itemclick: function(view, record, item, index, e)
{
alert(record.data.text);
}
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!');
}
}
}]
});
このコードのいくつかの説明は素晴らしいでしょう。 –
シンプルです
var tree = this.up("window").down("supportedcontrolcircuitmodelselector");
var selectedCircuit = tree.getSelectionModel().getLastSelected()
- 1. Xcodeでエラーを見つける方法を教えてください。 (iphoneプロジェクト)
- 2. Rubyでメソッドのネストを見つける方法を教えてください。
- 3. Rubyにネイティブライブラリを見つける方法を教えてください。
- 4. openALでオーディオレコーディングデバイスを選択させる方法を教えてください。
- 5. JenkinsでSCMチェックアウトを選択する方法を教えてください。
- 6. EclipseでAVDを「見る」方法を教えてください。
- 7. ユーザーにアップロードディレクトリを選択させる方法を教えてください。
- 8. ExtJS:いくつかのルーツを持つTreePanelを持つ方法?
- 9. 選択したノードがツリー内のリーフであるかどうかを知る方法を教えてください。 (ExtJS 4)
- 10. VSSで最後にチェックインした人を見つける方法を教えてください。
- 11. キャンバスにヒーローを選択する方法を教えてください。
- 12. 右クリックしてツリービューの選択されたノードを見つける方法
- 13. ベーステストクラスで定義されたクラス属性を見つける方法を教えてください。
- 14. Microsoft text analytics APIiによって単語がキーワードとして選択された場所を見つける方法を教えてください。
- 15. クラスを提供したクラスパスエントリを見つける方法を教えてください。
- 16. プロジェクト内に存在しない.CSファイルをプロジェクトフォルダ内で見つける方法を教えてください。
- 17. Thorがシステムにインストールされているファイルのテンプレートを見つける方法を教えてください。
- 18. RecyclerViewでラジオボタンを1つだけ選択してください。
- 19. ダイナミックラジオボタンで1つだけを選択してください
- 20. ハッシュマップを使用してポイントが属するエリアを見つける方法を教えてください。
- 21. geant4を構築するためにcmakeがqtを見つける方法を教えてください。
- 22. MSDNで.NETフレームワークメソッドのURLをすばやく見つける方法を教えてください。
- 23. 2つのラジオボタンを選択するためのJava Scriptの計算方法を教えてください。
- 24. SPARQLクエリを作成してプロパティの最高値を見つける方法を教えてください。
- 25. Integer.MAX_VALUEを使用して最小値と最大値を見つける方法を教えてください。
- 26. ClassIDを使用してアプリケーションウィンドウを見つける方法を教えてください。
- 27. デバッグで呼び出しメソッドを見つける方法を教えてください。
- 28. このコードがコンピュータなしで返す値を見つける方法を教えてください。
- 29. Androidでインテントを使用してローカルファイルのみを選択させる方法を教えてください。
- 30. Davidsonが教えてくれるすべてのクラスを受講する生徒を選択する方法と、少なくとも3つのクラスを教える教師の名前をすべて選択する方法を教えてください。
これはうまくいった、ありがとう! –
私が助けることができてうれしい –
ExtJS 4+では、 'Ext.selection.Model'に' getSelectedNode() 'メソッドはありませんが、' getSelection() 'があります。 –