【问题标题】:ASP DropDownList UpdatePanel IE JS ErrorsASP DropDownList UpdatePanel IE JS 错误
【发布时间】:2009-03-11 18:19:19
【问题描述】:

我在使用 IE 时遇到了一个特殊的 javascript 错误。 我有一个更新面板,里面有一个下拉列表。当我更改下拉列表的值时,它给了我错误“Line: 5 '__EVENTTARGET' is null or not an object'。 我看了一下,这行 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 中,它可以正常工作,没有错误。事实上,在开发机器上,带有 .aspx 和 .aspx.cs 文件的未编译解决方案在 IE 中没有错误。在生产机器上编译,我得到 IE js 错误。

什么问题,我该如何解决,或者至少,我可以从哪里开始寻找?没有太多运气完成了大量的谷歌搜索。

【问题讨论】:

  • @Duck :它是 ASP.NET 2.0/AJAX 1.0 - 在开发服务器上部署 soln 有效,没有 IE 错误,嗯... @McBeev :EnablePartialRendering="false" 确实摆脱了 javascript错误,但它不再像无闪烁更新面板(是 reqmnt)。 EnableEventValidation 没有帮助。 @ck:是的。

标签: asp.net ajax updatepanel


【解决方案1】:

一无所知,您的服务器是否具有与您的开发环境相同的服务包?

如果您使用的是 .NET 3.5 SP1,Service Pack 会有很大的不同,可能会导致奇怪的差异。

【讨论】:

    【解决方案2】:

    两者的 web.config 是否相同?您的产品可能缺少 ScriptResource.axd 的资源处理程序

    【讨论】:

      【解决方案3】:

      修好了!它是 Duck 和 ck 的 cmets 的组合。

      谢谢大家。

      这是一个 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>
      

      【讨论】:

        【解决方案4】:

        尝试设置 ScriptManager EnablePartialRendering 属性

        EnablePartialRendering="false"
        

        然后看看你是否仍然得到错误

        同时尝试关闭该页面上的事件验证

        <%@ Page EnableEventValidation="false" %>
        

        然后看看你是否仍然得到错误

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多