Click here to Skip to main content
15,897,704 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
1.I'm having a Radtreeview in Radcombobox.

XML
<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>


2.Client side Codings.

C#
<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>


3.When i am Checking the Node its works well.
4.But When i am clicking the node in treeview the Radcombobox is closing.
5.How to avoid Drop down closing from client side
Help me....
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900