0

以下は、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

4

1 に答える 1