我正在尝试从树视图的选定节点访问HtmlAttribute,我无法弄清楚如何通过单击按钮获取它。
我正在使用MVC4 Kendo UI Razor Engine
添加子分支后,我添加了html属性,当我点击按钮发送到另一个视图时,我想抓住选定的“TypeId
”。
我已经尝试过以下链接,但我尝试过的所有内容都是在尝试将参数发送到控制器/操作时给我一个空引用。如果我硬编码像1那样的id,则点击按预期工作。:
http://www.kendoui.com/forums/kendo-ui-complete-for-asp-net-mvc/treeview/select-selected-node.aspx
http://docs.kendoui.com/api/web/treeview#dataitem
这是脚本:
<script>
$("#btn").click(function () {
var treeview = $("#TreeView").data("kendoTreeView");//how to grab the selected idtopass?
window.location = "@Url.Action("Index","Content")" + "?id=" + idtopass;
});
$(document).ready(function() {
treeview = $("#TreeView").data("kendoTreeView");
});
</script>
编辑,
尝试过这样的事情
$("#btn").click(function () {
var treeSelected = $("#TreeView").data("kendoTreeView");
var idtoPass = treeSelected.dataItem(treeview.select()).Id;//how to grab the selected idtopass?
window.location = "@Url.Action("Index","Content")" + "?id=" + idtoPass;
});
当我选择一个孩子然后右键单击并检查元素
时,这是google Chrome Inspector<li class="k-item" data-id-to-pass="30" data-uid="151ce59e-97cf-4aed-b8d7-3054c886d68c" role="treeitem" aria-selected="true" id="treeview_tv_active">
<div class="k-top">
<span class="k-in k-state-selected">This is the Test Text</span>
</div>
</li>
答案 0 :(得分:1)
如果在DOM中设置id,则给出以下演示似乎应该很容易。你检查过那部分是否正常工作?我使用Chrome并右键单击“Inspect element”来查看DOM结构。 http://docs.kendoui.com/api/web/treeview#methods-select
要使用该属性获取值,在onSelect方法中,e.node应该为您提供DOM节点。我猜你的data_id_to_pass属性是在那个节点或它的父节点上。类似$(e.node).attr(“data_id_to_pass”)或$(e.node).parent()。attr(“data_id_to_pass”)。
如果要从按钮单击处理程序中获取所选节点,请使用treeview.select()获取所选节点。
你是否尝试使用像你在第一个链接中提到的Id属性?这似乎是更好的方法。应该能够做treeview.dataItem(treeview.select())。Id,如果他说的是用于填充dataItem上的Id属性。