jqTreeView - 在select事件中获取所选节点的值

时间:2013-05-15 12:38:08

标签: asp.net-mvc jqgrid

以下是我填充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的隐藏控件中(树视图是控件的id)。我甚至追踪了所有的ajax电话,却找不到任何东西。

问题: 1)它在哪里保留树节点的值? 2)如何在select事件中获取Selected Node的值?

我甚至试图在select事件中获取treeview_selectedState控件的值,但它返回[]。 然后我在视图中添加了一个按钮并将其挂在js函数上并在那里找到了值。这让我觉得选择事件中没有价值,我是否正确地认为?

我不认为获得选定节点的价值应该是一个大问题?我错过了一些非常明显的东西吗?

谢谢, 甲

1 个答案:

答案 0 :(得分:0)

在尝试了这么多东西之后,我检查了他们的演示并在那里找到了提示(我应该首先做这个)。

实际上非常直接

    function spawnTabAction(args, event) {
        alert($("#treeview").getTreeViewInstance().getNodeOptions(args).value);
    }

谢谢,

A