function
AfterCheckBrands(sender, eventArgs) {
var node = eventArgs.get_node();
if (node.get_checkBoxElement().checked == false) {
tempNode = node;
while (tempNode.get_value() != null) {
tempNode = tempNode.get_parent();
//tempNode.uncheck();
tempNode.get_checkBoxElement().checked =
false;
}
}
UpdateAllChildren(node.get_nodes(), node.get_checkBoxElement().checked);
}
function
UpdateAllChildren(nodes, checked) {
var i;
for (i = 0; i < nodes.get_count(); i++) {
if (checked) {
if (nodes.getNode(i).get_checkBoxElement().checked == false) {
//nodes.getNode(i).check();
nodes.getNode(i).get_checkBoxElement().checked =
true;
}
}
else {
if (nodes.getNode(i).get_checkBoxElement().checked) {
//nodes.getNode(i).uncheck();
nodes.getNode(i).get_checkBoxElement().checked =
false;
}
}
if (nodes.getNode(i).get_nodes().get_count() > 0) {
UpdateAllChildren(nodes.getNode(i).get_nodes(), checked);
}
}
}
When i am just checking the checkBoxElement and not setting the state using check() ot uncheck() for node it works fine.The script does not time out.
But the twist is that the node state is not set.Let say i checked a parent and children nodes gets check through javascript.But when i try to uncheck the any child brand the checkBoxElement for that node remains checked.I am assuming that when i explicitly trying to uncheck that node for the first time then internally it state get set to checked even if the checkBoxElement is displayed checked.When i try to uncheck it second time it works fine and according to javascript unchecked the parent node also.
So just setting the checkBoxElement of the node it not internally setting it state to checked or unchecked.
But when i try to use radtreeviewnode.check() or uncheck() then i get an IE error saying the script is taking too much time.
If i abort the scipt my tree comes into intermediate state which is not correct.
Is there any way i can get over any of the above two problems i am facing.
Any help will be greatly appreciated.
Regards,
Aayam Singh
My splitter.aspx code :
| <telerik:radsplitter id="RadSplitter1" runat="server" height="100%" width="100%" Orientation="Horizontal" Skin="Default2006"> |
| <telerik:radpane id="panel_header" runat="server" Height="68" MaxHeight="68" MinHeight="68">header</telerik:radpane> |
| <telerik:radsplitbar id="RadSplitbar1" runat="server" CollapseMode="Forward" /> |
| <telerik:radpane id="contentPane" runat="server" Scrolling="None"> |
| <telerik:radsplitter id="RadSplitter2" runat="server" height="100%" width="100%" Skin="Default2006"> |
| <telerik:radpane id="panel_menu" runat="server" width="250" ContentUrl="treeview.aspx"></telerik:radpane> |
| <telerik:radsplitbar id="RadSplitbar2" runat="server" CollapseMode="Forward" /> |
| <telerik:radpane id="panellist" runat="server"></telerik:radpane> |
| </telerik:radsplitter> |
| </telerik:radpane> |
| </telerik:radsplitter> |
| <script type="text/javascript"> |
| function ClientNodeClicked(sender, eventArgs) |
| { |
| var treeNode = eventArgs.get_node(); |
| var nodeValue = treeNode.get_text() |
| if (nodeValue == "Root") |
| { |
| window.open("content1.aspx", "panellist"); |
| } |
| else if (nodeValue.substring(0, 4) == "node") |
| { |
| nodeValue = nodeValue.substr(1, nodeValue.length - 1); |
| window.open("content2.aspx", "panellist"); |
| } |
| } |
| </script> |
| <telerik:RadTreeView ID="TreeView1" runat="server" OnClientNodeClicked="ClientNodeClicked"> |
| <Nodes> |
| <telerik:RadTreeNode Text="Root"> |
| <Nodes> |
| <telerik:RadTreeNode Text="node1" /> |
| <telerik:RadTreeNode Text="node2" /> |
| </Nodes> |
| </telerik:RadTreeNode> |
| </Nodes> |
| </telerik:RadTreeView> |
| function SaveOnExit() |
| { |
| var ajaxManager = $find("<%= ram.ClientID %>"); |
| ajaxManager.ajaxRequest(); |
| } |