gpt4 book ai didi

javascript - 访问所选 Kendo TreeView 节点的子节点

转载 作者:行者123 更新时间:2023-12-03 21:17:08 24 4
gpt4 key购买 nike

我有一个 Ajax 填充的 Treeview ....

@(Html.Kendo().TreeView()
.Name("fao")
.HtmlAttributes(new {@class="fixed-height" })
.DataTextField("Text")
.TemplateId("treeview-item-template")
.DataSource(ds => ds
.Read(r => r
.Action("_ModuleData", "Home")
)
.Model(m => m
.Children("Items")
.HasChildren("HasChildren")
)
)
)

我需要更新针对每个子项隐藏的一些数据 - 在模板中 - 当操作(在控件之外触发)发生时。

为了完整起见,模板看起来像这样......
<script id="treeview-item-template" type="text/kendo-ui-template">
#= item.Text #<input type='hidden' class='hidden-data' data-fal='#= item.Fal#' data-uid='#=item.uid#'/>
</script>

现在,我有触发器的代码,而且效果很好。

我有更新隐藏数据的代码。再次。不用担心。

我无法弄清楚的是如何简单地获取触发器触发时选择的节点的所有子(和孙子等)节点。

如果我在最初单击节点时试图联系 child ,我有点希望能够说出类似...
function doSomething(e)
{
for(n=0; n<e.node.nodes.length; n++)
{
doSomethingElse(e.node.nodes[n]);
}
}

但似乎不存在这样的功能。

有没有人对我如何解决这个问题有任何建议?

最佳答案

您可以通过从 DOM 节点获取的模型访问子项:

var dataItem = e.sender.dataItem(e.node);
if (dataItem.hasChildren) {
var children = dataItem.children.data();
}

这只会让您直接获得 child ,因此您必须递归获取所有后代。

( demo )

关于javascript - 访问所选 Kendo TreeView 节点的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28945836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com