【问题标题】:How to resolve error when ajaxtoolkit 3.5 is used "The Controls collection cannot be modified..."使用 ajaxtoolkit 3.5 时如何解决错误“无法修改控件集合...”
【发布时间】:2010-07-29 09:33:28
【问题描述】:

Microsoft JScript 运行时错误:Sys.WebForms.PageRequestManagerServerErrorException:无法修改控件集合,因为控件包含代码块(即 )。

我在 Gridview 的 EditTemplate 字段中使用它来使用 ajax 3.5 显示颜色

这是我的母版页层次结构

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Outer.master.cs" Inherits="Home" %>

<%@ Master Language="C#" MasterPageFile="~/Outer.master" AutoEventWireup="true" CodeFile="FullMid.master.cs" Inherits="FullMid" %>

<%@ Page Title="" Language="C#" MasterPageFile="~/FullMid.master" AutoEventWireup="true" CodeFile="StatusRoomMaster.aspx.cs" Inherits="StatusRoomMaster" %>

出现错误的页面

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<EditItemTemplate>
    <asp:TextBox ID="txtColorCode" runat="server" Text='<%# Bind("ColorCode") %>'></asp:TextBox>                        
    <asp:ColorPickerExtender ID="txtColorCode_ColorPickerExtender" runat="server" 
        Enabled="True" OnClientColorSelectionChanged="colorChanged" 
        SampleControlID="txtColorCode" TargetControlID="txtColorCode">
    </asp:ColorPickerExtender>
</EditItemTemplate>

我在masterpage's -> masterpage's -> page下使用它

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>

我在 outer.master 中使用它,并且没有使用更新面板。

【问题讨论】:

  • 你能发布更多的母版页吗?特别是使用内联代码标签 () 的任何内容。

标签: javascript asp.net ajax ajaxcontroltoolkit


【解决方案1】:

不要在标记中使用Text='&lt;%# Bind("ColorCode") %&gt;',而是创建GridView 的OnRowDataBound 事件的事件处理程序并在其中以编程方式设置颜色。这将消除对 &lt;% ... %&gt; 块的需要,从而消除错误。

【讨论】:

  • 我尝试删除此标签并尝试使用 text="" 它仍然显示错误
  • 您是否进行了全面重建?如果是这样,那将意味着您收到虚假错误“例如,它说您有 &lt;% ... %&gt; 代码块,而您没有,或者您有其他代码块,而您没有在示例中添加。
  • 不知道发生了什么。直到昨天一切都很好,工作正常。但是今天当我制作了一个新的母版页并将旧页面转换为在该母版页中运行时。然后这两个包含 ColorPicketExtender 控件的页面被挂断。一旦我删除此控件,这两个页面也开始正常工作。
【解决方案2】:

不是 AjaxControlToolkit 错误,请检查您的标题。 AjaxCotrolToolkit 代码是

foreach (Control c in header.Controls)
{
HtmlLink l = c as HtmlLink;
                if (null != l && styleSheet.Equals(l.Href, StringComparison.OrdinalIgnoreCase))
                {
                    addIt = false;
                    break;
                }
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多