Pregunta

Recibo un peculiar error de JavaScript con IE. Tengo un panel de actualización y dentro de él una lista desplegable. Cuando cambio el valor de la lista desplegable, me da error '' Línea: 5 '__EVENTTARGET' es nulo o no es un objeto '. Eché un vistazo, y esta Línea 5 y __EVENTTARGET están en el código JavaScript generado por ASP.NET.

Quiero una lista desplegable que active el método cuando se seleccione una nueva opción, sin parpadeo de página.

Aquí hay algo de mi código:

<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>

y

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

En Firefox, funciona, no hay errores. Y, de hecho, en la máquina de desarrollo, solución no compilada con archivos .aspx y .aspx.cs, sin errores en IE. En la máquina de producción, compilada, obtengo errores de IE js.

¿Cuál es el problema, cómo lo soluciono, o al menos, dónde puedo comenzar a buscar? Hecho un montón de google sin mucha suerte.

¿Fue útil?

Solución 3

¡Lo arreglamos! Fue una combinación de Duck y los comentarios de ck.

Gracias chicos.

Era un problema de web.config. El archivo web.config de esta aplicación en particular era diferente de algunas otras aplicaciones que habíamos estado usando en nuestros servidores. Aquí están las soluciones para cualquier persona que tenga este problema.

web.config incorrecto:

<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>

Corregir 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>

Otros consejos

Una foto en la oscuridad, ¿su servidor tiene los mismos paquetes de servicio que su entorno de desarrollo?

Si está utilizando .NET 3.5 SP1, el paquete de servicio hace una gran diferencia y podría explicar la discrepancia extraña.

¿Tiene el mismo web.config en ambos? Puede que a su producción le falte el manejador de recursos para ScriptResource.axd

Intente configurar la propiedad ScriptManager EnablePartialRendering

EnablePartialRendering="false"

Y vea si aún recibe un error

También intente desactivar la validación de eventos en esa página

<%@ Page EnableEventValidation="false" %>

Y vea si aún recibe un error

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top