【发布时间】:2010-07-14 12:45:45
【问题描述】:
当用户检查父节点并禁用所有子节点的复选框时,我试图在 Telerik RAD 树视图中选择子节点的所有复选框。我有一个递归函数可以成功选中这些框,但是我在禁用所有子复选框方面运气不佳。这是我的代码:
<script type="text/javascript" language="JavaScript">
function UpdateChildrenRecursively(nodes, checked)
{
var i;
for (i=0; i<nodes.get_count(); i++)
{
if (checked)
{
nodes.getNode(i).check();
}
else
{
nodes.getNode(i).set_checked(false);
}
// if the node has children, call the recursive function
// then disable the checkboxes for each child
if (nodes.getNode(i).get_nodes().get_count()> 0)
{
UpdateChildrenRecursively(nodes.getNode(i).get_nodes(), checked);
nodes.getNode(i).get_nodes().disabled = true;
}
}
}
function clientNodeChecked(sender, eventArgs)
{
var childNodes = eventArgs.get_node().get_nodes();
var isChecked = eventArgs.get_node().get_checked();
UpdateChildrenRecursively(childNodes, isChecked);
}
</script>
Telerik RAD 树如下所示:
<telerik:RadTreeView ID="RadTreeView2" OnClientNodeChecked="clientNodeChecked" CheckBoxes="true"
runat="server" DataSourceID="XmlDataSource1">
<DataBindings>
<telerik:RadTreeNodeBinding DataMember="Node" TextField="Text" ExpandedField="Expanded" />
</DataBindings>
</telerik:RadTreeView>
<asp:XmlDataSource runat="server" ID="XmlDataSource1" DataFile="Tree.xml" XPath="/Tree/Node" />
【问题讨论】:
标签: javascript recursion treeview checkbox telerik