2016-10-07 2 views
2

У меня возникла проблема с установкой dotnetnuke для установки на компьютере. Когда я пытаюсь загрузить содержимое модуля страницы администрирования в разделе «Администратор/Управление Страница», я получаю ошибку JavaScriptwindow.dnnLoadScriptsInAjaxMode undefined в модуле администрирования страницы

pages:2089 Uncaught TypeError: Cannot read property 'length' of undefined

Wich происходит потому, что window.dnnLoadScriptsInAjaxMode неопределен

var loadScriptInMultipleMode = function(){ 
    for(var i = 0; i < window.dnnLoadScriptsInAjaxMode.length; i++){ 

Когда я смотрю в код страницы я могу видеть и отлаживать следующее: если проверка не выполняется: «item.indexOf ('$ crm_')« не работает.

(function($){ 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(function (sender, args){ 
var dataItems = args.get_dataItems(); 
for(var item in dataItems){ 
    if(item.indexOf('$crm_') > -1){ 
     var content = dataItems[item]; 
     ... 

Поскольку dataItems содержит все значения для ClientDependency заполнителей с подчеркиванием «_» в качестве префикса. например, «_crm_BodySCRIPTS» вместо знака доллара «$» «$ crm_BodySCRIPTS», что и ожидает код.

В нашем производственном экземпляре все работает нормально, и я не могу вспомнить изменение конфигурации префикса для платформы ClientDependency. Объединение и изменение файлов происходит так же, как в Администрации.

Может кто-нибудь помочь с тем, что может быть неправильным здесь?

ОБНОВЛЕНИЕ: Я вижу в строке Github: 172 https://github.com/dnnsoftware/Dnn.Platform/blob/development/DNN%20Platform/DotNetNuke.Web.Client/Providers/DnnBodyRenderProvider.cs, что это жестко запрограммировано. Поэтому я должен как-то уже установить ScriptManager, не зная.

Как это может быть?

ответ

3

Проблема вызвана установкой атрибута clientIDMode в web.config для страниц.

<pages validateRequest="false" enableViewStateMac="true" enableEventValidation="true" viewStateEncryptionMode="Never" clientIDMode="AutoID"> 

В описании от Microsoft состояния:

The ClientID value is generated by concatenating the ID values of each parent naming container with the ID value of the control. In data-binding scenarios where multiple instances of a control are rendered, an incrementing value is inserted in front of the control's ID value. Each segment is separated by an underscore character (_). This algorithm is the only one that was available in versions of ASP.NET earlier than ASP.NET 4.

Атрибут вызывает изменение $, чтобы подчеркнуть для свойства ClientID, которая затем используется для визуализации dataitems с ID «_crm». Таким образом проверка клиентов не выполняется.

Если вы удалите атрибут, все будет работать снова.

0

Можете ли вы попробовать настроить «Кожа», которая используется на странице «Управление страницами»? Попробуйте использовать одну из скинов по умолчанию с DNN, посмотрите, есть ли конфликт jquery/javascript с чем-то в вашем скине/теме, который вызывает ошибку JS, которую вы видите.

Если это произойдет, чтобы решить проблему, я бы начал смотреть на ваш «порядок загрузки» файлов JS.

Какую версию платформы DNN вы используете в настоящее время?

+0

Я попробую это и сообщит о моих результатах. Версия Evoq Content 8.5. Мы используем наш собственный скин и удалили скин по умолчанию. Но я могу восстановить это и попробовать. – spankmaster79

+0

Только что проверено, нет темы «Тема страницы» и «Нет контейнера страниц». Он по-прежнему работает в нашей тестовой среде, но не на dev-машине. – spankmaster79

+0

Возможно, не существует темы для темы, но использует ли она тему «сайт»? –