我在IE上遇到了一个特殊的javascript错误。 我有一个updatepanel,里面有一个下拉列表。当我更改下拉列表的值时,它会给出错误“Line:5'__EVENTTARGET'为null或不是对象'。 我看一下,这行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中,它有效,没有错误。事实上,在dev机器上,使用.aspx和.aspx.cs文件进行未编译的soln,在IE中没有错误。在生产机器上编译,我得到IE js错误。
问题是什么,我该如何解决,或者至少,我在哪里可以开始寻找?做了大量的谷歌搜索没有太多的运气。
答案 0 :(得分:1)
在黑暗中拍摄,您的服务器是否具有与开发环境相同的服务包?
如果您使用的是.NET 3.5 SP1,则该服务包会产生很大的不同,并且可能会导致奇怪的差异。
答案 1 :(得分:1)
你们两个都有相同的web.config吗?您的生产可能缺少ScriptResource.axd的资源处理程序
答案 2 :(得分: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>
答案 3 :(得分:0)
尝试设置ScriptManager EnablePartialRendering属性
EnablePartialRendering="false"
看看你是否还有错误
同时尝试关闭该页面上的事件验证
<%@ Page EnableEventValidation="false" %>
看看你是否还有错误