web-dev-qa-db-ja.com

剣道ツリービューから選択したノードの値を読み取りますか?

{id, value}のノードを持つ剣道ツリービューがあります。ボタンをクリックしたときに、選択したノードのIDと値を取得したいと思います。

どうすれば入手できますか?それを取得するための組み込み関数はありますか?

これが私のサンプルコードです:

$("mytree").kendoTreeView({
                dataSource: mydata,
                dataTextField: "Name",
                dataValueField: "Id",
            });
7
jestges

.select() メソッドを使用します。利用可能な他の方法も必ず確認してください。

var tv = $('.mytree').data('kendoTreeView'),
    selected = tv.select(),
    item = tv.dataItem(selected);
if (item) {
  alert('Selected item: ' + item.Name + ' : ' + item.Id + ' (uid: ' + item.uid + ')');
} else {
  alert('Nothing selected');
}

ここでフィドル

22
ryan
**

var tv = $("#treeview-right").data("kendoTreeView");
    var selectedNode = tv.select();
    var item = tv.dataItem(e.node);
    item.text will give you the text of the selected node.

****

5
satish

実際に何をするかによっては、実際に選択した値より1ステップ遅れることがあるため、選択した回答には同意しません。

単純な削除機能がある場合、このタイプのコードは正常に機能します

var treeview = $("#treeview").data("kendoTreeView");
var selectedNode = treeview.select(),
item = treeview.dataItem(selectedNode);

ただし、ツリービューをもっと使い始めると、私が持っているようにそれを後悔することになります。

ベストプラクティスはイベントハンドラーに関連付けることです

例えば.

var treeview = $("#treeview").kendoTreeView({
    expanded: true,
    select: onSelect,
    ....        
}).data("kendoTreeView");

選択関数

function onSelect(e) {

    var treeview = $("#treeview").data("kendoTreeView");
    var item = treeview.dataItem(e.node);

     if (item) {
         console.log('Selected item: ' + item.whatever + ' | Id = ' + item.Id + ' | Type = ' + item.Type);
         var someVariable = item.whatever;
     } else{
        console.log('nothing selected');
     }
2
Tom Stickel