AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2015, 20:42   #1  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Lightbulb CRM 2013. Возможности модального окна Xrm.Internal.openDialog
Приветствую, коллеги.

Слепил ASPX-ресурс. И, в принципе, реализовал задачу на виндовом модальном окне window.showModalDialog. Но, будучи перфекционистом, хочется его, так сказать - ЦРМ-стайл .
Отсюда вопросы (так как пока не получилось):
Можно ли в Xrm.Internal.openDialog отобразить ASPX-ресурс?
И можно ли вообще передать В это окно параметры Xrm.Page?

В попытках реализации исходил из классического:
X++:
	var DialogOption = new Xrm.DialogOptions;
	DialogOption.width = 500; DialogOption.height = 420;
	Xrm.Internal.openDialog("/WebResources/dt_Custom.html", DialogOption, null, null, CallbackFunction);
	function CallbackFunction(returnValue) { }
Спасибо.
Старый 10.04.2015, 22:12   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Напишите код, который у вас реализует открытие формы - помогу с переписыванием под CRM Style.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 12.04.2015, 12:12   #3  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Сейчас это вот такой простенький код, вызываемый по кнопке с риббона:
X++:
var entityId = Xrm.Page.data.entity.getId();
window.showModalDialog("http://host/CustomCaseResolution.aspx?caseGuid=" + entityId.toString(), "", "resizable:no; dialogHeight:430px; dialogWidth:350px;");
До этого пытался через модальный диалог crm. Код выше. В нем, на сколько я понял, можно ссылаться только на веб ресурсы crm. Подсунуть туда внешний aspx с параметрами crm пока не вышло.

Последний раз редактировалось magicandy; 12.04.2015 в 12:20.
Старый 13.04.2015, 10:25   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от magicandy Посмотреть сообщение
Сейчас это вот такой простенький код, вызываемый по кнопке с риббона:
X++:
var entityId = Xrm.Page.data.entity.getId();
window.showModalDialog("http://host/CustomCaseResolution.aspx?caseGuid=" + entityId.toString(), "", "resizable:no; dialogHeight:430px; dialogWidth:350px;");
До этого пытался через модальный диалог crm. Код выше. В нем, на сколько я понял, можно ссылаться только на веб ресурсы crm. Подсунуть туда внешний aspx с параметрами crm пока не вышло.
Понял вашу проблему. Могу тогда предложить workaround. Действительно создайте вебресурс, а в нём пропишите редиректор на вашу aspx страницу и передайте параметры через урлу.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: magicandy (1).
Старый 13.04.2015, 13:16   #5  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
По кнопке вызываю скрипт
X++:
function CustomCaseResolution() {
	var DialogOption = new Xrm.DialogOptions;
	DialogOption.width = 500; DialogOption.height = 420;
	Xrm.Internal.openDialog("/WebResources/dt_Custom.html", DialogOption, null, null, CallbackFunction);
	function CallbackFunction(returnValue) { }	
}
Вот содержимое dt_Custom.html
X++:
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script language="javascript">
document.location.href = "http://10.3.153.24:4006/";
alert("OK!"); // Этот алерт срабатывает.
</script>
</body>
</html>
Диалог пустой . Что не так?
Урл точно рабочий.
Старый 13.04.2015, 13:45   #6  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
X++:
<html>
<head>
<base target="_self">
<script language="javascript">
function Redirect () {
	document.location.href = "http://10.3.153.24:4006/CustomCaseResolution.aspx";	
}
</script>
</head>
<body>
<script language="javascript">
	Redirect();
</script>
</body>
</html>
Такой вариант тоже не меняет ситуацию.
В Хроме просто висит пустой диалог, в ИЕ предупреждает о содержимом, и полностью обновляет страницу, открывая ЦРМ.
Старый 13.04.2015, 13:49   #7  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Странно, что не работает. Думаю, что тут ничего кроме экспериментов не остаётся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 13.04.2015, 14:17   #8  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
Цитата:
Сообщение от magicandy Посмотреть сообщение
X++:
<html>
<head>
<base target="_self">
<script language="javascript">
function Redirect () {
	document.location.href = "http://10.3.153.24:4006/CustomCaseResolution.aspx";	
}
</script>
</head>
<body>
<script language="javascript">
	Redirect();
</script>
</body>
</html>
Такой вариант тоже не меняет ситуацию.
В Хроме просто висит пустой диалог, в ИЕ предупреждает о содержимом, и полностью обновляет страницу, открывая ЦРМ.
Что показывет fiddler?
Реквест выполняется?
__________________
Читайте SDK!!!
За это сообщение автора поблагодарили: magicandy (1).
Старый 13.04.2015, 21:28   #9  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Цитата:
Сообщение от Konstantin Katsovich Посмотреть сообщение
Что показывет fiddler?
Реквест выполняется?
К своему стыду, данной магией пока не владею ,

Но приложение всё же удалось открыть в модальном диалоге ЦРМ, после его публикации на ИИС (где хостится ЦРМ) и обращению по ХТТПС. Но тут всплыла куча других проблем.
Приложение опубликовано в папке ISV. После его запуска (не важно, в каком типе модального окна) всё вроде бы ОК. Форма биндится корректно. Но стоит изменить значение контрола, как биндинг слетает. При локальной отладке такого не возникает. Ещё, если запустить приложение не по хттпс, то происходит следующее - в Хроме всё работает прекрасно, в ИЕ каждое изменение значения контрола, приводит к переоткрытию приложения в новой вкладке ИЕ. Думал поможет переход на хттпс, но тут всё только стало ещё хуже .
Видимо, собака зарыта где-то в настройках приложения на ИИСе. Понимаю, что вопрос уже не профильный, но всё же может кто-то подскажет на какие настройки в ИИСе стоит обратить особое внимание при публикации црм-асп-приложения?

Последний раз редактировалось magicandy; 13.04.2015 в 21:31.
Старый 14.04.2015, 08:21   #10  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
По поводу биндинга - из моего опыта написания страниц для CRM - это не побеждалось и каждый раз необходимо было перебиндживать данные на онлоаде. По поводу переоткрытия в новой вкладке посмотрите это - http://a33ik.blogspot.com/2009/10/sh...in-custom.html
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 14.04.2015, 11:55   #11  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Цитата:
Сообщение от a33ik Посмотреть сообщение
По поводу переоткрытия в новой вкладке посмотрите это - http://a33ik.blogspot.com/2009/10/sh...in-custom.html
Спасибо. "_self" уж стоит на страничке. Это помогло как раз от открытия в новом окне. Тут же он почему-то кидает в новую вкладку. И при отладке приложения на localhost такого нет.

Цитата:
Сообщение от a33ik Посмотреть сообщение
По поводу биндинга - из моего опыта написания страниц для CRM - это не побеждалось и каждый раз необходимо было перебиндживать данные на онлоаде.
А можно поподробнее? У меня сценарий следующий.
1 контрол - DropDownList с родительскими объектами
2 контрол - ListBox с дочерними
На онлоад всё биндится хорошо. Видны все родители в DropDownList. Первый пункт "болванка", выбрано по умолчанию, потому дочерние не биндятся. Как только я выбираю другого родителя, он тут же возвращается к "болванке".

Цитата:
Сообщение от a33ik Посмотреть сообщение
необходимо было перебиндживать данные на онлоаде.
то есть, чтобы вылечить, мне нужно каждый раз делать некий онлоад?

Подчеркну - на локалхосте и по хттп (в хроме) проблем с приложением нет.
Старый 21.04.2015, 17:25   #12  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Регистрация: 15.07.2014
Полностью переделал решение на JS, в диалоге CRM-style. Теперь всё чётко, во всех браузерах.

Отдельное спасибо a33ik за статью. Только для полного фарша в ней не хватает быстрорефреша формы, после закрытия диалога. После некоторых мытарств, хорошо заработало так (в Хроме и ИЕ):
X++:
        var objWindow = window.getDialogArguments();
        objWindow.location.replace(objWindow.location);
        closeWindow();
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15 Blog bot Dynamics CRM: Blogs 1 10.02.2016 10:26
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 17 Blog bot Dynamics CRM: Blogs 0 10.05.2014 06:30
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2013 Update Rollup 2 Blog bot Dynamics CRM: Blogs 0 15.04.2014 01:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 16 Blog bot Dynamics CRM: Blogs 0 23.01.2014 03:15
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:55.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.