2013-08-30 13 views
5

私は{id, value}のノードを持つ剣道ツリービューを持っています。ボタンをクリックすると、選択したノードのIDと値を取得したい。剣道ツリービューから選択したノードの値を読み込みますか?

どうすれば入手できますか?そこにそれを得るためにinbuilt関数がありますか?

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

答えて

19

.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'); 
} 

Fiddle here

+0

ねえライアン、お返事に感謝。しかし、ここではitem.textにnullを与え、item.idはいくつかのGuidを与えています。私は正確なテキストとデータソースを介してバインドされている値を期待しています。 – jestges

+0

この例のテキストと値のフィールドは、あなたのものと正確に一致しませんでした。私の更新と更新されたフィドルを参照してください – ryan

+0

ちょっとライアン、私は間違って何をしているのかわかりません。私は同じ方法を踏襲しましたが、tv.dataItemは関数エラーではありません。 – jestges

5
** 

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. 

**

+0

「eは定義されていません」 – PAULDAWG

+0

あなたの投稿を編集して、このコードで回答した理由を説明して、人々があなたに投票できる理由は? –

+0

イベントハンドラを使用しない場合、eは未定義です。 @PAULDAWG私はより良い答えを提供します。 –

2

あなたが実際に何をすべきかに応じて、あなたが実際に選択した値の後ろに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'); 
    } 
関連する問題