0

我正在尝试从树视图的选定节点访问 HtmlAttribute,但我无法弄清楚如何通过单击按钮来获取它。

我正在使用 MVC4 Kendo UI Razor Engine

添加子分支后,我添加了 html 属性,TypeId当我单击按钮发送到另一个视图时,我想获取 Selected ''。

我已经尝试了下面的链接,但是当它尝试将参数发送到控制器/动作时,我所尝试的一切都给了我一个空引用。如果我硬编码一个像 1 这样的 id,点击会按预期工作。:

http://www.kendoui.c​​om/forums/kendo-ui-complete-for-asp-net-mvc/treeview/cannot-get-value-of-selected-item-in-treeview.aspx

http://www.kendoui.c​​om/forums/kendo-ui-complete-for-asp-net-mvc/treeview/select-selected-node.aspx

http://docs.kendoui.c​​om/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>
4

1 回答 1

1

考虑到以下演示,如果在 DOM 中设置了 id,似乎应该很容易。你检查过那部分是否有效吗?我使用 Chrome 并右键单击“检查元素”来查看 DOM 结构。 http://docs.kendoui.c​​om/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() 获取选定节点。

您是否尝试过使用第一个链接中提到的 Alex 的 Id 属性?这似乎是更好的方法。如果他所说的内容适用于填充 dataItem 上的 Id 属性,则应该能够执行 treeview.dataItem(treeview.select()).Id 。

于 2013-11-10T04:19:47.933 回答