Ошибки ASP DropDownList UpdatePanel IE JS - PullRequest
0 голосов
/ 11 марта 2009

Я получаю странную ошибку JavaScript с IE. У меня есть панель обновлений, и внутри нее выпадающий список. Когда я изменяю значение выпадающего списка, он выдает ошибку «Строка: 5« __EVENTTARGET »является нулевым или не является объектом». Я посмотрел, и эта строка 5 и __EVENTTARGET находятся в сгенерированном ASP.NET коде JavaScript.

Я хочу выпадающий список, который запускает метод при выборе новой опции, без мерцания страницы.

Вот мой код:

<asp:ScriptManager ID="uxScriptMan" runat="server" />
<asp:UpdatePanel ID="uxtestupdatepanel" runat="server">
<ContentTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" 
    AutoPostBack="true" OnSelectedIndexChanged="TESTMETHOD">
 <asp:ListItem Text="TEST" Selected="true" />
 <asp:ListItem Text="Yes" Value="1" />
 <asp:ListItem Text="No" Value="0" />
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>

и

protected void TESTMETHOD(object sender, EventArgs e) { /*do nothing*/ }

В Firefox все работает, ошибок нет. И на самом деле, на компьютере разработчика, нескомпилированный soln с файлами .aspx и .aspx.cs, в IE нет ошибок. На производственной машине, скомпилированной, я получаю ошибки IE js.

В чем проблема, как мне исправить или, по крайней мере, где я могу начать поиск? Совершил тонну прибегая к помощи без особой удачи.

Ответы [ 4 ]

1 голос
/ 11 марта 2009

Исправлено! Это была комбинация комментариев Дака и СК.

Спасибо, ребята.

Это была проблема web.config. Это конкретное приложение web.config отличалось от нескольких других приложений, которые мы использовали на наших серверах. Вот исправления для тех, кто когда-либо сталкивался с этой проблемой.

Неправильный web.config:

<compilation debug="false">
        <assemblies>
            <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        </assemblies>
    </compilation>


 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.61025.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Правильный web.config:

<compilation debug="false">
  <assemblies>
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  </assemblies>
1 голос
/ 11 марта 2009

У вас есть один и тот же web.config в обоих? В производственной версии может отсутствовать обработчик ресурсов для ScriptResource.axd

1 голос
/ 11 марта 2009

В темноте, на вашем сервере установлены те же пакеты обновления, что и в вашей среде разработки?

Если вы используете .NET 3.5 с пакетом обновления 1 (SP1), пакет обновления имеет большое значение и может объяснить странное расхождение.

0 голосов
/ 11 марта 2009

Попробуйте установить свойство ScriptManager EnablePartialRendering

EnablePartialRendering="false"

И посмотрите, все еще ли вы получили ошибку

Также попробуйте отключить проверку событий на этой странице

<%@ Page EnableEventValidation="false" %>

И посмотрим, все еще ли появляется ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...