0

我在 IE 中遇到了一个特殊的 javascript 错误。我有一个更新面板,里面有一个下拉列表。当我更改下拉列表的值时,它给了我错误“第 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 中,它可以工作,没有错误。事实上,在开发机器上,带有 .aspx 和 .aspx.cs 文件的未编译解决方案在 IE 中没有错误。在生产机器上编译,我得到 IE js 错误。

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

4

4 回答 4

1

在黑暗中开枪,您的服务器是否具有与您的开发环境相同的服务包?

如果您使用的是 .NET 3.5 SP1,则服务包会产生很大的不同,并且可能会导致奇怪的差异。

于 2009-03-11T18:28:00.343 回答
1

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

于 2009-03-11T18:39:59.597 回答
1

修复!这是 Duck 和 ck 评论的结合。

多谢你们。

这是一个 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>
于 2009-03-11T20:00:39.573 回答
0

尝试设置 ScriptManager EnablePartialRendering 属性

EnablePartialRendering="false"

看看你是否仍然得到错误

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

<%@ Page EnableEventValidation="false" %>

看看你是否仍然得到错误

于 2009-03-11T18:38:11.910 回答