これには多くの問題があり、安らかなことをしていたので、回避策を作成することにしました。
私がやりたいことは、ノードが展開されたときに、クリックされたノードの値で JS 関数を呼び出すことです。そこから、クエリを取得して結果を返し、組み込みの JavaScript を使用してノードをページに追加します。
これについては、何らかの方法があると思います。JS スクリプトを起動するために使用できるコントロールの「onNodeExpand」属性があると考えていました。
考え?
これには多くの問題があり、安らかなことをしていたので、回避策を作成することにしました。
私がやりたいことは、ノードが展開されたときに、クリックされたノードの値で JS 関数を呼び出すことです。そこから、クエリを取得して結果を返し、組み込みの JavaScript を使用してノードをページに追加します。
これについては、何らかの方法があると思います。JS スクリプトを起動するために使用できるコントロールの「onNodeExpand」属性があると考えていました。
考え?
あなたが探しているのは次のとおりだと思います:
OnExpand()
ここをチェックしてください:http://demos.telerik.com/aspnet-mvc/treeview/clientsideevents
TreeView は、ロード オン デマンド機能をサポートしています。つまり、ユーザーがノードを展開したときにのみ、ノードのアイテムがサーバーから自動的にダウンロードされます。サーバー側のコードは、制御下にある子ノードを満たすためのカスタム ロジックにすることができます。必要な設定は、ツリー ビューに AJAX 呼び出しが何であるかを知らせることだけです。
次の例を見てください。
http://demos.telerik.com/aspnet-mvc/treeview/ajaxloading
この例では、Northwind データベースにバインドし、emplyoyees のツリーを構築しています。ツリービューを定義し、ツリービューでオンデマンドのロードを設定するコードは次のとおりです。
<%= Html.Telerik().TreeView()
.Name("TreeView")
.DataBinding(dataBinding => dataBinding
.Ajax().Select("_AjaxLoading", "TreeView")
)
%>
上記のコードでは、TreeView に DataBinding が設定されており、TreeViewController 内の _AjaxLoading という名前のアクション メソッドに対して Ajax 呼び出しを行う必要があることを示しています。
カスタム ロジックに基づいたオンデマンド ロードを探している場合は、これが最も簡単な方法です。
クライアント側からもツリー ビューをバインドできます。TreeView には、広範なクライアント側イベント処理とクライアント側 API があります。次のデモを実行することをお勧めします。
http://demos.telerik.com/aspnet-mvc/treeview/clientsideevents - サポートされているすべてのクライアント側イベントのリスト
http://demos.telerik.com/aspnet-mvc/treeview/clientsideapi - ツリービューのすべてのクライアント側 API サポートをリストします
ご質問にお答えできれば幸いです。
Lohith (Telerik India テック エバンジェリスト)