or
Expected ']' at line
<body> <form id="formWebReportGenerator" runat="server" onmouseup="DisableDrag();" onmousemove="resizePanel();"> <CustomControl:Palette ID="PaletteControl" runat="server"> </CustomControl:Palette> </form></body>protected void Page_Load(object sender, EventArgs e) { GetSomeComboBoxes(); PaletteControl.WebReportGeneratorView = this; PaletteControl.SetDimensionsPanel(ContextSelector);//ContextSelector is a class which contain some ComboBoxes }<asp:UpdatePanel runat="server"> <ContentTemplate> <asp:PlaceHolder ID="DimensionsHolder" runat="server"></asp:PlaceHolder> </ContentTemplate></asp:UpdatePanel>internal void SetDimensionsPanel(ContextSelector contextSelector){ foreach (var comboBox in contextSelector.HierarchicalComboBoxes.Values) { DimensionsHolder.Controls.Add(comboBox); }}<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ComboBoxView.ascx.cs" Inherits="AS.Cpm.Web.Site.WebReportGenerator.Views.ComboBoxView" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><script type="text/javascript"> function ClientNodeChecked_<%= ClientID %>(sender, eventArgs) { var node = eventArgs.get_node(); var combo = $find("<%= RadComboBox.ClientID %>"); var checkedNodes = sender.get_checkedNodes(); var dimensionString = ""; for (var i = 0; i < checkedNodes.length; i++) { dimensionString += checkedNodes[i].get_text(); } combo.set_text(dimensionString); combo.attachDropDown(); } function OnClientDropDownOpenedHandler_<%= ClientID %>(sender, eventArgs) { var tree = sender.get_items().getItem(0).findControl("RadTreeView1"); var selectedNode = tree.get_selectedNode(); if (selectedNode) { selectedNode.scrollIntoView(); } } function ClientNodeChecking_<%= ClientID %>(sender, eventArgs) { var node = eventArgs.get_node(); var combo = $find("<%= RadComboBox.ClientID %>"); var checkedNodes = sender.get_checkedNodes(); for (var i = 0; i < checkedNodes.length; i++) { checkedNodes[i].set_checked(false); } } function ClientItemChecking_<%= ClientID %>(sender, eventArgs) { var combo = $find("<%= RadComboBox.ClientID %>"); var node = eventArgs.get_item(); var checkedItems = sender.get_checkedItems(); for (var i = 0; i < checkedItems.length; i++) { checkedItems[i].set_checked(false); } }</script><div id="DimensionLabelBgLeft"></div><div id="DimensionLabelBg"><asp:Label ID="Label" runat="server" CssClass="labelComboBox"></asp:Label></div><div id="DimensionLabelBgRight"></div><telerik:RadComboBox ID="RadComboBox" runat="server" HighlightTemplatedItems="True" AutoPostBack="true" AllowCustomText="true" ChangeTextOnKeyBoardNavigation="true" MaxHeight="200px" Width="100%"></telerik:RadComboBox>public partial class ComboBoxView : System.Web.UI.UserControl{ protected List<RadTreeNode> radTreeNodes; protected List<RadComboBoxItem> radComboBoxItems; Boolean multiSelection; protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// Init hierarchical combobox /// </summary> /// <param name="entity">The entity</param> /// <param name="entityCode">The entity code</param> /// <param name="radTreeNodes">The tree nodes</param> /// <param name="multiSelection">true if it allows multi selection, else false</param> public void InitHierarchicalComboBox(String label, List<RadTreeNode> radTreeNodes, Boolean multiSelection = true) { this.radTreeNodes = radTreeNodes; setLabel(label); this.multiSelection = multiSelection; } /// <summary> /// Init non hierarchical combobox /// </summary> /// <param name="entity">The entity</param> /// <param name="entityCode">The entity code</param> /// <param name="radComboBoxItems">The combobox items</param> /// <param name="multiSelection">true if it allows multi selection, false else</param> public void InitNonHierarchicalComboBox(String label, List<RadComboBoxItem> radComboBoxItems, Boolean multiSelection = true) { this.radComboBoxItems = radComboBoxItems; setLabel(label); this.multiSelection = multiSelection; } /// <summary> /// Set the label of the combobox /// </summary> /// <param name="label">The text label</param> private void setLabel(String label) { Label.Text = label; } protected override void OnInit(EventArgs e) { var test = this; RadComboBox radComboBox = (RadComboBox)FindControl("RadComboBox"); radComboBox.Items.Clear(); radComboBox.OnClientDropDownOpened = "OnClientDropDownOpenedHandler_" + this.ClientID; if (radComboBox != null) { if (radTreeNodes != null) { radComboBox.ItemTemplate = new MyTreeView(this, radTreeNodes, multiSelection); radComboBox.Items.Add(new RadComboBoxItem("")); StringBuilder comboBoxText = new StringBuilder(); foreach (var checkedNode in (radComboBox.ItemTemplate as MyTreeView).RadTreeView.CheckedNodes) comboBoxText.Append(checkedNode.Text); radComboBox.Text = comboBoxText.ToString(); } } base.OnInit(e); } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); //Debug.WriteLine("**WRG diagnostics -> OnPreRender ComboBox : {0}", entity.Code); RadComboBox radComboBox = (RadComboBox)FindControl("RadComboBox"); if (radComboBoxItems != null) { if (!multiSelection) radComboBox.OnClientItemChecking = "ClientItemChecking_" + this.ClientID; radComboBox.CheckBoxes = true; foreach (var radComboBoxItem in radComboBoxItems) { radComboBox.Items.Add(radComboBoxItem); } } } /// <summary> /// Return the checked item of the combobox /// </summary> /// <returns></returns> public String GetCheckedItemText() { RadComboBox radComboBox = (RadComboBox)FindControl("RadComboBox"); if(radComboBox.Text != String.Empty) return radComboBox.Text; return null; }}/// <summary>/// The treeview template for the HierarchicalComboBox/// </summary>public class MyTreeView : ITemplate{ RadTreeView radTreeView; public RadTreeView RadTreeView { get { return radTreeView; } } List<RadTreeNode> radTreeNodes; ComboBoxView hierarchicalComboBox; Boolean multiSelection; public MyTreeView(ComboBoxView hierarchicalComboBox, List<RadTreeNode> radTreeNodes, Boolean multiSelection) { this.radTreeNodes = radTreeNodes; this.hierarchicalComboBox = hierarchicalComboBox; this.multiSelection = multiSelection; } public void InstantiateIn(System.Web.UI.Control container) { radTreeView = new RadTreeView(); radTreeView.CheckBoxes = true; radTreeView.OnClientNodeChecked = "ClientNodeChecked_" + hierarchicalComboBox.ClientID; if(!multiSelection) radTreeView.OnClientNodeChecking = "ClientNodeChecking_" + hierarchicalComboBox.ClientID; radTreeView.Nodes.AddRange(radTreeNodes); //radTreeView.NodeCheck += new RadTreeViewEventHandler(RadTreeView_NodeCheck); container.Controls.Add(radTreeView); }}//Non hierarchicalComboBoxView _hierarchicalComboBoxAge = (ComboBoxView)new UserControl().LoadControl("~/Controls/ComboBoxView.ascx");_hierarchicalComboBoxAge.InitNonHierarchicalComboBox("", CreateSomeItems("Age"), false);_hierarchicalComboBoxAge.ID = "Age" + "§" + "NotDefined";comboBoxViews.Add(_hierarchicalComboBoxAge);//HierarchicalComboBoxView _hierarchicalComboBoxTree = (ComboBoxView)new UserControl().LoadControl("~/Controls/ComboBoxView.ascx");_hierarchicalComboBoxTree.InitHierarchicalComboBox("", CreateSomeNodes("Tree"), false);_hierarchicalComboBoxTree.ID = "Tree" + "§" + "NotDefined";comboBoxViews.Add(_hierarchicalComboBoxTree);Request URL[12/10/2012 11:35:54] http://localhost:90/WindowsIntegratedWebSite/WebReportGenerator/Views/WebReportGeneratorView.aspx?ReportId=42Exception DetailsSystem.InvalidOperationException: Les contrôles de script ne peuvent pas être inscrits avant PreRender.SourceSystem.Web.ExtensionsTarget SiteVoid RegisterScriptControl[TScriptControl](TScriptControl)Stack Trace à System.Web.UI.ScriptControlManager.RegisterScriptControl[TScriptControl](TScriptControl scriptControl) à Telerik.Web.UI.RadDataBoundControl.RegisterScriptControl() à Telerik.Web.UI.RadDataBoundControl.ControlPreRender() à Telerik.Web.UI.RadTreeView.OnPreRender(EventArgs e) à System.Web.UI.Control.PreRenderRecursiveInternal() à System.Web.UI.Control.AddedControl(Control control, Int32 index) à AS.Cpm.Web.Site.WebReportGenerator.Views.MyTreeView.InstantiateIn(Control container) dans C:\dev\Cpm\CpmNet\WebSite\WebReportGenerator\Views\ComboBoxView.ascx.cs:ligne 157 à Telerik.Web.UI.ControlItemContainer.ApplyTemplate(ControlItem item) à Telerik.Web.UI.ControlItemContainer.InitializeItem(ControlItem item) à Telerik.Web.UI.ControlItem.SetItemContainer(ControlItemContainer itemContainer) à Telerik.Web.UI.ControlItemCollection.OnInsertComplete(Int32 index, Object value) à System.Web.UI.StateManagedCollection.InsertInternal(Int32 index, Object o) à System.Web.UI.StateManagedCollection.System.Collections.IList.Add(Object value) à System.Web.UI.StateManagedCollection.LoadAllItemsFromViewState(Object savedState) à System.Web.UI.Control.LoadViewStateRecursive(Object savedState) à System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) à System.Web.UI.Control.LoadViewStateRecursive(Object savedState) à System.Web.UI.Control.AddedControl(Control control, Int32 index) à AS.Cpm.Web.Site.WebReportGenerator.Views.PaletteUserControl.SetDimensionsPanel(ContextSelector contextSelector) dans C:\dev\Cpm\CpmNet\WebSite\WebReportGenerator\Views\Palette.ascx.cs:ligne 60 à AS.Cpm.Web.Site.WebReportGeneratorView.Page_Load(Object sender, EventArgs e) dans C:\dev\Cpm\CpmNet\WebSite\WebReportGenerator\Views\WebReportGeneratorView.aspx.cs:ligne 169 à System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) à PageBase.OnLoad(EventArgs e) dans C:\dev\Cpm\CpmNet\WebSite\Code\PageBase.cs:ligne 180 à System.Web.UI.Control.LoadRecursive() à System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)DataSystem.Collections.ListDictionaryInternalFooterAggregateFormatString
="{0:n0}" Aggregate="Avg" DataType="System.Double"

<telerik:RadComboBox ID="ddlMyCombo" DataTextField="dev" DataValueField="devid" AllowCustomText="false" runat="server" Filter="StartsWith" ExpandDirection="Down" />
user should not be able to type in custom text in the ComboBox. I set the allowcustomtext property to false but it did not work.
when user types in custom text and the form is saved, the combobox selected value is -1.
please help with a solution to this.