<telerik:RadComboBox ID="RadComboBox1" runat="server" DropDownAutoWidth="Enabled" Width="250px" ShowToggleImage="True" EmptyMessage="Choose a destination" Skin="WebBlue"> <ItemTemplate> <div id="div1"> <telerik:RadTreeView runat="server" ID="RadTreeView1" CheckBoxes="true" OnClientNodeClicked="OnClientNodeClicked" OnClientNodeChecked="nodeChecked" Width="100%" Skin="WebBlue" TriStateCheckBoxes="true"></telerik:RadTreeView> </div> </ItemTemplate> <Items> <telerik:RadComboBoxItem Text=""></telerik:RadComboBoxItem> </Items> </telerik:RadComboBox>
<telerik:RadCodeBlock ID="RadScriptBlock1" runat="server"> <script type="text/javascript"> function StopPropagation(e) { if (!e) { e = window.event; } e.cancelBubble = true; } function OnClientDropDownOpenedHandler(sender, eventArgs) { var tree = sender.get_items().getItem(0).findControl("RadTreeView1"); var selectedNode = tree.get_selectedNode(); if (selectedNode) { selectedNode.scrollIntoView(); } } function nodeChecked(sender, args) { var comboBox = $find("<%= RadComboBox1.ClientID %>"); var tempNode = args.get_node(); //check if 'Select All' node has been checked/unchecked if (tempNode.get_text().toString() == "(Select All)") { // check or uncheck all the nodes } else { var nodes = new Array(); nodes = sender.get_checkedNodes(); var CbxText = ""; var CbxValues = ""; var i = 0; for (i = 0; i < nodes.length; i++) { var n = nodes[i]; var nodeText = n.get_text().toString(); if (nodeText != "(Select All)") { var Parentnodes = sender.findNodeByText(nodeText); if (Parentnodes._hasChildren() == true) { } else { CbxText = CbxText + "," + n.get_text().toString(); CbxValues = CbxValues + "," + n.get_value().toString(); } } } //prevent combo from closing supressDropDownClosing = true; CbxText = CbxText.substring(1); CbxValues = CbxValues.substring(1); comboBox.set_text(CbxText); comboBox.set_value(CbxValues); } } function OnClientNodeClicked(sender, args) { var comboBox = $find("<%= RadComboBox1.ClientID %>"); var tempNode = args.get_node(); tempNode.set_checked(tempNode.get_selected()); tempNode.unselect(); //check if 'Select All' node has been checked/unchecked if (tempNode.get_text().toString() == "(Select All)") { // check or uncheck all the nodes } else { var nodes = new Array(); nodes = sender.get_checkedNodes(); var CbxText = ""; var CbxValues = ""; var i = 0; for (i = 0; i < nodes.length; i++) { var n = nodes[i]; var nodeText = n.get_text().toString(); if (nodeText != "(Select All)") { var Parentnodes = sender.findNodeByText(nodeText); if (Parentnodes._hasChildren() == true) { } else { CbxText = CbxText + "," + n.get_text().toString(); CbxValues = CbxValues + "," + n.get_value().toString(); } } } //prevent combo from closing CbxText = CbxText.substring(1); CbxValues = CbxValues.substring(1); comboBox.set_text(CbxText); comboBox.set_value(CbxValues); } } </script> </telerik:RadCodeBlock>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)