2008-09-18 5 views
7

Я использую AjaxControlToolkit в VS2005, и он отлично работает. У меня есть некоторые вопросы, хотя, когда я иду на некоторые страницы у меня есть, а затем нажмите кнопку назад, я получаю эту ошибку JavaScript:«AjaxControlToolkit» не определено Ошибка

'AjaxControlToolkit' is undefined

Я искал на форумах MSDN, и Google, и пытался многие из решений, но никто не работал. Я пробовал, EnablePartialRendering="true", и другие. За исключением переписывания всего и изменения рабочего процесса моего приложения, есть ли способ найти причину этого или исправить?

+0

Я получал ту же ошибку на странице, которая использовала AjaxControlToolkit.CalendarBehavior для динамического добавления элемента управления Calendar Extender (и связанных элементов управления) в JavaScript. Ссылка ниже о переключении на Sys.Extended.UI.CalendarBehavior решила мою проблему – DaveD 2012-04-16 15:00:08

+0

В моем случае проблема заключалась в том, что я использовал asp: ScriptManager. Использование ajax: ToolKitScriptManager решил проблему. – Tillito 2014-01-24 11:25:49

+0

Решение Tilito решило эту проблему для меня. – Doreen 2014-05-09 18:49:00

ответ

0

Это ошибка javascript?

Я полагаю, что это связано с поддержкой задней кнопки в наборе инструментов.

И неопределенные ошибки в основном возникают из-за того, что скрипт, содержащий «AjaxControlToolkit», не загружается должным образом.

Вещь, которая приходит на ум:

  • Порядок скрипты загружаются, делает Инструментарий получает приоритет?
  • Если в любом из загруженных скриптов есть ошибки, все остальные незагруженные сценарии просто будут отменены и не будут загружены.

См. Выходной HTML-адрес страницы проблемы, найдите ссылки на все файлы AXD и убедитесь, что вы можете их загрузить и увидеть действительные javascripts внутри.

И если вы еще этого не сделали, получите Firefox и Firebug, и вы должны иметь возможность отслеживать фактическую строку сценария, которая испускает ошибку.

Надеюсь, это поможет.

+0

как вы сказали, проблемы с обратной кнопкой. использовали fiddler/firebug. Я вижу, что происходит ошибка, не загружая все jscript на кнопку «Назад», но если вы ударяете страницу по ссылке. Не уверен, что я могу сделать, чтобы заставить его загрузить все jscript, кнопку «Назад» или нет, без перезаписи. – ScaleOvenStove 2008-09-18 21:48:35

+0

Ummm ... вы использовали AjaxControlToolkit в других разделах, кроме поддержки кнопки «Назад»? – chakrit 2008-09-18 21:53:34

1

Это может быть глупый вопрос, но вы дважды проверяли, чтобы убедиться, что у вас есть ссылка на инструментарий в верхней части вашего файла aspx?

(Добавление от комментариев для удобства чтения)

Попробуйте добавить это к вашему web.config

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

В [CodeRot] сказал, что вам нужно, чтобы иметь все расширения web.config AJAX на месте, это наиболее часто упущенная точка при создании сайтов ASP.NET AJAX (в частности, от VS 2005).

Далее убедитесь, что у вас есть ScriptManager на странице (что я предполагаю, что вы сделали из упоминания «EnablePartialRendering»).

Убедитесь, что вы ссылаетесь на версию AjaxControlToolkit для своей версии .NET, она скомпилирована как для .NET 2.0, так и для .NET 3.5, и я считаю, что последняя версия поддерживает только .NET 3.5.

Убедитесь, что вы получаете клиентскую библиотеку Microsoft AJAX, добавленную на страницу (что вы не получаете никаких ошибок в отношении «Sys»).

Убедитесь, что вы зарегистрировали AjaxControlToolkit в ASPX, ASCX или web.config.

0

Если ничего еще не сработало для вас. Убедитесь, что вы не кешируете этот ascx/aspx. Удалите объявление OutputCache.

3

Чтобы обойти этот «AjaxControlToolkit», не определено Ошибка, вы также можете убедиться, что у вас установлено значение CombineScripts равным false в конфигурации ToolkitScriptManager. Это можно найти на главной странице, и это решение сработало для меня.

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

Примечание вы хотите изменить myTagPrefix к tagprefix вы используете для AjaxControlToolkit. Это, как правило, определяется в осины в верхней части файла ASPX, как это ...

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

Я получил это исправил problme, но не устанавливая CombineScripts = «ложь», но с использованием раствора описанной in this post.

В последней версии произошли некоторые изменения, из-за которых вы должны использовать Sys.Extended.UI.BehaviorBase вместо AjaxControlToolkit.BehaviorBase в вызове registerClass.

Смежные вопросы