以下是我填充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函数上并在那里找到了值。这让我觉得选择事件中没有价值,我是否正确地认为?
我不认为获得选定节点的价值应该是一个大问题?我错过了一些非常明显的东西吗?
谢谢, 甲
答案 0 :(得分:0)
在尝试了这么多东西之后,我检查了他们的演示并在那里找到了提示(我应该首先做这个)。
实际上非常直接
function spawnTabAction(args, event) {
alert($("#treeview").getTreeViewInstance().getNodeOptions(args).value);
}
谢谢,
A