<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> //RadTreeNOde in Combobox function nodeClicking(sender, args) { var comboBox = $find("<%= DepartmentCombo.ClientID %>"); var node = args.get_node() comboBox.set_text(node.get_text()); comboBox.trackChanges(); comboBox.get_items().getItem(0).set_text(node.get_text()); comboBox.get_items().getItem(0).set_value(node.get_value()); comboBox.commitChanges(); comboBox.hideDropDown(); // Call comboBox.attachDropDown if: // 1) The RadComboBox is inside an AJAX panel. // 2) The RadTreeView has a server-side event handler for the NodeClick event, i.e. it initiates a postback when clicking on a Node. // Otherwise the AJAX postback becomes a normal postback regardless of the outer AJAX panel. //comboBox.attachDropDown(); } 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(); } } </script></telerik:RadCodeBlock> <telerik:RadComboBox runat="server" ID="DepartmentCombo" Width="100%" OnClientDropDownOpened="OnClientDropDownOpenedHandler" EmptyMessage="Хэлтэс албаны сонгоно уу" ExpandAnimation-Type="None" CollapseAnimation-Type="None" AutoPostBack="true" OnInit="DepComboBox_OnInit"> <Items> <telerik:RadComboBoxItem Value="0" Text="Хэлтэс албаа сонгоно уу" /> </Items> <ItemTemplate> <div id="div1"> <telerik:RadTreeView runat="server" ID="RadTreeView1" OnClientNodeClicking="nodeClicking" Width="100%" Height="240px"> </telerik:RadTreeView> </div> </ItemTemplate> </telerik:RadComboBox> <script type="text/javascript"> var divitem = document.getElementById("div1"); if (null != divitem) divitem.onclick = StopPropagation; </script>when i postback and get RadTreeview1.selectedvalue all working perfectly
RadTreeView RadTree = (RadTreeView)DepartmentCombo.Items[0].FindControl("RadTreeView1"); Response.Write(RadTree.SelectedValue);but when i get RadTreeview1.selectedvalue in
PositionCombo i get msg "Input string was not in a correct format"<telerik:RadComboBox runat="server" ID="PositionCombo" Width="100%" EmptyMessage="Албан тушаалаа сонгоно уу" EnableLoadOnDemand="True" ShowMoreResultsBox="true" Height="150px" EnableVirtualScrolling="true" OnItemsRequested="PositionCombo_ItemsRequested" LoadingMessage="Ачааллаж байна..."> <HeaderTemplate> <table style="width: 100%" cellspacing="0" cellpadding="0"> <tr style="color: #417CAB; font-weight: bold;"> <td style="width: 100%;"> Нэр </td> </tr> </table> </HeaderTemplate> <ItemTemplate> <table style="width: 100%" cellspacing="0" cellpadding="0"> <tr> <td style="width: 100%;"> <%# DataBinder.Eval(Container, "Text")%> </td> </tr> </table> </ItemTemplate> </telerik:RadComboBox>protected void PositionCombo_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e) { RadTreeView RadTree = (RadTreeView)DepartmentCombo.Items[0].FindControl("RadTreeView1"); int ComboID = Convert.ToInt32(DepartmentCombo.SelectedValue); //0
int TReeID = Convert.ToInt32(RadTree.SelectedValue);//Input string was not in a correct format
DataTable data = _DepClass.GetPositionListForCbx(TReeID); int itemOffset = e.NumberOfItems; int endOffset = Math.Min(itemOffset + 500, data.Rows.Count); e.EndOfItems = endOffset == data.Rows.Count; for (int i = itemOffset; i < endOffset; i++) { RadComboBoxItem tempIT = new RadComboBoxItem(); tempIT.Value = data.Rows[i]["id"].ToString(); tempIT.Text = data.Rows[i]["title"].ToString(); PositionCombo.Items.Add(tempIT); tempIT.DataBind(); } e.Message = GetStatusMessage(endOffset, data.Rows.Count); }PS: Sorry my English is bad :).