2008-09-18 37 views
7

Estoy usando el AjaxControlToolkit en VS2005, y funciona bien. Tengo algunos problemas, sin embargo, cuando voy a algunas páginas que tengo, a continuación, en la espalda, me sale este error de JavaScript:'AjaxControlToolkit' no está definido Error

'AjaxControlToolkit' is undefined

foros de MSDN he buscado, y Google, y trató muchas de las soluciones, pero ninguno ha funcionado. Lo he intentado, EnablePartialRendering="true", y otros. A menos que vuelva a escribir todo y cambie el flujo de trabajo de mi aplicación, ¿hay alguna forma de encontrar la causa raíz de esto o solucionarlo?

+0

Recibía el mismo error en una página que usaba AjaxControlToolkit.CalendarBehavior para agregar dinámicamente el control de Calendar Extender (y controles relacionados) en JavaScript. El siguiente enlace sobre cambiar a Sys.Extended.UI.CalendarBehavior resolvió mi problema – DaveD

+0

En mi caso, el problema fue que utilicé asp: ScriptManager. Usando ajax: ToolKitScriptManager resolvió el problema. – Tillito

+0

La solución de Tilito resolvió este problema para mí. – Doreen

Respuesta

0

¿Eso es un error de javascript?

Supongo que tiene que ver con el soporte del botón de retroceso en el kit de herramientas.

Y los errores indefinidos ocurren principalmente porque de alguna manera la secuencia de comandos que contiene "AjaxControlToolkit" no se carga correctamente.

cosa que viene a la mente:

  • El orden de las secuencias de comandos se cargan, ¿el kit de herramientas tiene prioridad?
  • Cuando hay errores en cualquiera de los scripts cargados, todos los otros scripts que no se han cargado se cancelarán y no se cargarán.

Consulte el HTML saliente de la página del problema, encuentre enlaces a todos los archivos AXD y asegúrese de que puede descargarlos y ver dentro de ellos javascripts válidos.

Y si no lo hace ya, obtenga Firefox y Firebug y podrá rastrear la línea de script real que emite el error.

Espero que esto ayude.

+0

como dijiste, problemas de botón de retroceso. he usado el violinista/firebug. Puedo ver los errores que suceden, no está cargando todo el jscript en el botón Atrás, pero si tocas la página desde un enlace. No estoy seguro de lo que puedo hacer para que cargue todo el jscript, botón de retroceso o no, sin una reescritura – ScaleOvenStove

+0

Ummm ... ¿Utilizaste AjaxControlToolkit en otros recursos aparte del botón de retroceso compatible? – chakrit

1

Esto puede ser una pregunta tonta, pero ¿se aseguró de tener la referencia del kit de herramientas en la parte superior de su archivo aspx?

(Adición de comentarios para facilitar la lectura)

Trate de añadir esto a su web.config

<system.web.extensions> 
    <scripting> 
     <scriptResourceHandler enableCompression="false" enableCaching="false" /> 
    </scripting></system.web.extensions> 
+0

sí está referenciado. Funciona bien si presiono la página directamente o desde un enlace, solo aparece este error en los botones Atrás – ScaleOvenStove

+0

Esto puede ser solo una solución ... pero es algo que debes probar. Trate de añadir esto a su web.config Me CodeRot

+0

Esto ayudó a fijar una problema cuando navego por mi sitio desde IE7 alojado en Citrix. El navegador basado en Citrix no estaba descomprimiendo las secuencias de comandos correctamente. –

0

Como [CodeRot] dijo que necesita para asegurarse de que tiene todas las extensiones AJAX web.config en su lugar, este es el punto que se pierde con más frecuencia cuando se hacen sitios ASP.NET AJAX (particularmente desde VS 2005).

A continuación, asegúrese de tener un ScriptManager en la página (lo que supongo que hace de la mención "EnablePartialRendering").

Asegúrese de que está haciendo referencia a la versión AjaxControlToolkit para su versión .NET, está compilada para .NET 2.0 y .NET 3.5, y creo que la última versión solo es compatible con .NET 3.5.

Asegúrese de que está obteniendo la biblioteca de cliente Microsoft AJAX agregada a la página (que no está recibiendo ningún error acerca de "Sys").

Asegúrese de registrar un AjaxControlToolkit en su ASPX, ASCX o web.config.

+0

todo lo que está hecho. Esta es la respuesta más común en la web. El AjaxControlToolkit está funcionando bien. Simplemente arroja el error de jScript en el botón Atrás. Estoy usando controles ajax y el trabajo bien si no. – ScaleOvenStove

0

Si aún no ha funcionado nada para usted. Verifique que no está almacenando en la memoria caché este ascx/aspx. Elimine la declaración de OutputCache.

3

Para evitar este 'AjaxControlToolkit' no está definido Error, es posible que también desee asegurarse de que tiene CombineScripts configurado en falso en la configuración de su ToolkitScriptManager. Esto se puede encontrar en su página maestra y esta solución me ha funcionado.

<myTagPrefix:ToolkitScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnablePartialRendering="true" SupportsPartialRendering="true" **CombineScripts="false"**> 

Nota tendrá que cambiar myTagPrefix a la TagPrefix que está utilizando para AjaxControlToolkit. Esto generalmente se define en asp en la parte superior de un archivo aspx como esto ...

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="myTagPrefix" %> 
+0

CombineScripts = "false" funcionó para mí para las páginas de administración de nopCommerce 1.9. – Rahatur

6

logré introducir este problme pero no mediante el establecimiento de CombineScripts = "false", pero mediante el uso de la solución descrita in this post.

Ha habido algunos cambios en la última versión, debido a que debe utilizar Sys.Extended.UI.BehaviorBase en lugar de AjaxControlToolkit.BehaviorBase en la llamada registerClass.