以下は、jqTreeView を作成する方法です。
意見
@Html.Trirand().JQTreeView(
new JQTreeView
{
DataUrl = Url.Action("RenderTree"),
Height = Unit.Pixel(500),
Width = Unit.Pixel(150),
HoverOnMouseOver = false,
MultipleSelect = false,
ClientSideEvents = new TreeViewClientSideEvents()
{
Select="spawnTabAction"
}
},
"treeview"
)
<script>
function spawnTabAction(args, event) {
alert(args);
}
</script>
コントローラ
public JsonResult RenderTree()
{
var tree = new JQTreeView();
List<JQTreeNode> nodes = new List<JQTreeNode>();
nodes.Add(new LeafNode { Text = "Products", Value="Product/Product/Index" });
FolderNode fNode = new FolderNode { Text = "Customers" };
fNode.Nodes.Add(new LeafNode() { Text = "Today's Customers", Value = "Customer/Customer/Today" });
nodes.Add(fNode);
nodes.Add(new LeafNode { Text = "Suppliers", Value = "Supplier/Supplier/Index" });
nodes.Add(new LeafNode { Text = "Employees", Value = "Employee/Employee/Index" });
nodes.Add(new LeafNode { Text = "Orders", Value = "Order/Order/Index" });
return tree.DataBind(nodes);
}
私がやりたいことは、選択したノードの値に基づいてタブを生成することです。いろいろ試しましたが、選択したノードの値を取得できませんでした。
後でレンダリングされたページの DOM をチェックしたところ、値がノードに追加されていないことがわかりましたが、魔法のようにノードを選択すると、treeview_selectedState という名前の非表示のコントロールに値が表示されます (treeview はコントロールの ID です)。すべての ajax 呼び出しも追跡しましたが、何も見つかりませんでした。
質問: 1) ツリー ノードの値はどこに保持されますか? 2) select イベントで選択したノードの値を取得するにはどうすればよいですか?
select イベントで treeview_selectedState コントロールの値を取得しようとしましたが、[] が返されました。次に、ビューにボタンを追加し、それをjs関数にフックして、そこに値を見つけました。select イベントでは値が利用できないと思われますが、そう考えてよろしいですか?
選択したノードの値を取得することは、それほど大したことではないと思いますか? 非常に明白な何かが欠けていますか?
ありがとう、A