2012-03-30 1 views
2

У меня есть набор кнопок на одной из моих лент пользовательских сущностей, а также одна на ленте объекта с учетной записью. Когда я нажимаю один из них, я вижу сообщение об ошибке страницы в строке состояния, но все они правильно выполняют свои функции. Когда я отлаживал код с помощью IE Developer Tools, я понял, что он выпускает ошибку страницы перед запуском моего кода. Кто-нибудь имеет представление об этой ситуации?CRM 2011 Пользовательская ленточная кнопка работает правильно, но вызывает ошибку страницы

Спасибо заранее,

Озер

Xml Код:

<RibbonDiffXml> 
    <CustomActions> 
    <CustomAction Id="NXM.account.Form.SearchMerchantInDB.CustomAction" Location="Mscrm.Form.account.MainTab.Workflow.Controls._children" Sequence="1"> 
     <CommandUIDefinition> 
     <Button Id="NXM.account.Form.SearchMerchantInDB.Button" Command="NXM.account.Form.SearchMerchantInDB.Command" LabelText="Üye Firma/İş Yeri Sorgula" ToolTipTitle="Üye Firma/İş Yeri Sorgusu" ToolTipDescription="Firma/iş yerinin Üye Firma/İş Yeri olup olmadığı bilgisini sorgular" TemplateAlias="o1" Image16by16="$webresource:new_searchmagnifier16x16" Image32by32="$webresource:new_searchmagnifier32x32" /> 
     </CommandUIDefinition> 
    </CustomAction> 
    </CustomActions> 
    <Templates> 
    <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates> 
    </Templates> 
    <CommandDefinitions> 
    <CommandDefinition Id="NXM.account.Form.SearchMerchantInDB.Command"> 
     <EnableRules></EnableRules> 
     <DisplayRules></DisplayRules> 
     <Actions> 
     <JavaScriptFunction Library="$webresources:new_account" FunctionName="CheckIfMember" /> 
     </Actions> 
    </CommandDefinition> 
    </CommandDefinitions> 
    <RuleDefinitions> 
    <TabDisplayRules /> 
    <DisplayRules /> 
    <EnableRules /> 
    </RuleDefinitions> 
    <LocLabels /> 
</RibbonDiffXml> 

ответ

1

После тяжелого труда я обнаружил ошибку. Если вы установите атрибут библиотеки как

"$ webresources: new_account"

, когда он должен быть

"$ webresource: new_account"

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

@Philip, @Grigory благодарю вас, ребята, за ваши усилия и ответы.

+0

Вы только что спасли мне часы исследований !!! – Nathan

0

Попытка запуска отладчика на странице и нажмите "Ctrl + R" для обновления, а затем нажмите ваши кнопки. Отладчик должен остановиться на строке, где возникает ошибка.

+0

Я пробовал это несколько раз. Но есть еще одно, что я думаю. Поскольку отладчик не улавливает строку ошибки. Но давая синтаксическую ошибку на правой панели. Он дает ошибку в файле edit.aspx line 3 1 –

0

Похоже, что страница, возможно, подняла исключение перед событием нажатия кнопки (возможно, OnLoad), есть ли у вас какой-либо пользовательский код, который работает в этой форме onLoad? Если так, я бы посмотрел, что делает этот код, прежде всего, чтобы это исключить. В противном случае, если другой код не работает (что может быть подтверждено отключением всех событий в форме), страница все еще ошибка? Если это так, проверьте, что поля в форме имеют все атрибуты, которые правильно определены, например, отображаемое имя и т. Д., Поскольку иногда это может привести к ошибке формы.

+0

Привет, Филипп, я получаю сообщение об ошибке страницы в строке состояния после того, как я нажму кнопку, но до того, как он запустит свою функциональность. Как вы предположили, я попытался отключить все события формы, но это не сработало. Моя форма также включает json2, jquery и javascript, которые я копировал из Crm Sdk.И библиотека общих функций, которую я кодировал и использовал ранее в моих предыдущих проектах. У вас есть пример для отображаемого имени, которое вызывает ошибку формы? –

+0

Правильно ли загружается страница, если все события отключены, и вы не нажимаете кнопку панели ленты? например Откройте форму, внесите изменения в поле и сохраните форму? С точки зрения полей есть поля, которые имеют пустое отображаемое имя, так как это может вызвать проблемы в форме. Звучит похоже, что кнопка не находит подходящий метод для запуска. Возможно, вы могли бы разместить xml за кнопкой, а также функцию, которую вы намереваетесь запускать при нажатии кнопки. –

+0

Привет, Филипп, я добавил скрипт и коды xml к вопросу. Страница загружается правильно, даже если я не отключу события формы. Кнопка находит свой код для запуска. Когда я устанавливаю отладчик на начало его метода и нажимаю кнопку, IE Developer Tools ловит точку останова, но до этого времени страница выводит ошибку в строке состояния. Затем, когда я нажимаю F5 (на инструментах разработчика IE), он корректно запускает метод (CheckIfMember) и возвращает результат. Сын, я не думаю, что метод может вызвать ошибку. –

0

Для потомков у меня была та же проблема, но мое решение было несколько иным. Я ссылался на свою собственную библиотеку веб-ресурсов как:

/WebResources/xxx_js_mylibary.js 

, когда вы не можете иметь .js часть.

Вместо

/WebResources/xxx_js_mylibary 

Надежда, что помогает кто-то вниз линию. Спасибо предыдущим участникам этого разговора за то, что вы меня направили в правильном направлении.