Hi
I have a tree view with check boxes and I want to use client side script to
1. If I un-check a box then I want to un-check all children
2. If I check a box then I want to check all the parent items all the way up the hierarchy of the tree
The code I have to do this is
The code appears to be working to a degree in that
1. If I check a child item then it correctly sets all the parent items up the tree to checked
2. If I un-check an item it correctly un-checks all the children entries
The problem I am having is that if I
1. When I try to check an item that has children then nothing happens - The variable isSelected is set to false, when it should be true.
2. When I try to un-select an item that has no children then nothing happens - The variable isSelected is set to true when it should be false.
I can get it working fine with server side code, but client side would be much neater
Many thanks in advance
I have a tree view with check boxes and I want to use client side script to
1. If I un-check a box then I want to un-check all children
2. If I check a box then I want to check all the parent items all the way up the hierarchy of the tree
The code I have to do this is
function updateAllChildren(nodes) |
{ |
var i; |
for (i=0; i<nodes.get_count(); i++) |
{ |
nodes.getNode(i).set_checked(false); |
if (nodes.getNode(i).get_nodes().get_count()> 0) |
{ |
updateAllChildren(nodes.getNode(i).get_nodes()); |
} |
} |
} |
function clientNodeChecked(sender, eventArgs) |
{ |
var selectedNode = eventArgs.get_node(); |
var isSelected = selectedNode.get_checked(); |
var currentNode = selectedNode.get_parent(); |
var childNodes = selectedNode.get_nodes(); |
// toggle node |
selectedNode.set_checked(!isSelected); |
if (isSelected) // If seleceted then push changes up hierarchy |
{ |
while (currentNode.get_attributes().getAttribute("ParentID") != "0") |
{ |
currentNode.set_checked(true); |
currentNodecurrentNode = currentNode.get_parent(); |
} |
} |
if (!isSelected)// force uncheck for all children |
{ |
updateAllChildren(childNodes); |
} |
} |
The code appears to be working to a degree in that
1. If I check a child item then it correctly sets all the parent items up the tree to checked
2. If I un-check an item it correctly un-checks all the children entries
The problem I am having is that if I
1. When I try to check an item that has children then nothing happens - The variable isSelected is set to false, when it should be true.
2. When I try to un-select an item that has no children then nothing happens - The variable isSelected is set to true when it should be false.
I can get it working fine with server side code, but client side would be much neater
Many thanks in advance