ASP DropDownList UpdatePanel IE JS错误

时间:2009-03-11 18:19:19

标签: asp.net ajax updatepanel

我在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错误。

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

4 个答案:

答案 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" %>

看看你是否还有错误