Как устранить ошибку при использовании ajaxtoolkit 3.5 "Коллекция элементов управления не может быть изменена ..." - PullRequest
1 голос
/ 29 июля 2010

Ошибка времени выполнения Microsoft JScript: Sys.WebForms.PageRequestManagerServerErrorException: коллекцию элементов управления нельзя изменить, поскольку элемент управления содержит блоки кода (т.е. <% ...%>).

Я использую его в поле EditTemplate Gridview для отображения цвета с помощью 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>

Я использую это в external.master, и панель обновления не использовалась.

Ответы [ 2 ]

0 голосов
/ 19 октября 2013

не ошибка 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;
                }
            }
0 голосов
/ 29 июля 2010

Вместо использования Text='<%# Bind("ColorCode") %>' в разметке создайте обработчик события OnRowDataBound в GridView и установите цвет там программно. Это устранит необходимость в блоке <% ... %> и, следовательно, ошибку.

...