"The Controls collection cannot be modified because the control contains code blocks"

Posted by Daniel P on Stack Overflow See other posts from Stack Overflow or by Daniel P
Published on 2009-04-22T20:02:46Z Indexed on 2010/04/08 7:43 UTC
Read the original article Hit count: 531

I am trying to create a simple user control that is a slider. When I add a AjaxToolkit SliderExtender to the user control I get this (*&$#()@# error:

Server Error in '/' Application. The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[HttpException (0x80004005): The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).]
System.Web.UI.ControlCollection.Add(Control child) +8677431
AjaxControlToolkit.ScriptObjectBuilder.RegisterCssReferences(Control control) in d:\E\AjaxTk-AjaxControlToolkit\Release\AjaxControlToolkit\ExtenderBase\ScriptObjectBuilder.cs:293 AjaxControlToolkit.ExtenderControlBase.OnLoad(EventArgs e) in d:\E\AjaxTk-AjaxControlToolkit\Release\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:306 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

Version Information: Microsoft .NET Framework Version:2.0.50727.3074; ASP.NET Version:2.0.50727.3074

I have tried putting a placeholder in the user control and adding the textbox and slider extender to the placeholder programmatically and I still get the error.

Here is the simple code:

<table cellpadding="0" cellspacing="0" style="width:100%">
<tbody>
    <tr>
        <td></td>
        <td>
            <asp:Label ID="lblMaxValue" runat="server" Text="Maximum" CssClass="float_right" />
            <asp:Label ID="lblMinValue" runat="server" Text="Minimum" />
        </td>
    </tr>
    <tr>
        <td style="width:60%;">
            <asp:CheckBox ID="chkOn" runat="server" /><asp:Label ID="lblPrefix" runat="server" />:&nbsp;<asp:Label ID="lblSliderValue" runat="server" />&nbsp;<asp:Label ID="lblSuffix" runat="server" />
        </td>
        <td style="text-align:right;width:40%;">                

                <asp:TextBox ID="txtSlider" runat="server" Text="50" style="display:none;" />
                <ajaxToolkit:SliderExtender ID="seSlider" runat="server" 
                    BehaviorID="seSlider" 
                    TargetControlID="txtSlider" 
                    BoundControlID="lblSliderValue" 
                    Orientation="Horizontal" 
                    EnableHandleAnimation="true" 
                    Length="200" 
                    Minimum="0" 
                    Maximum="100" 
                    Steps="1" />

        </td>
    </tr>
</tbody>

What is the problem?

Thanks in advance.

Dan

© Stack Overflow or respective owner

Related posts about c#

Related posts about ajaxcontroltoolkit