AXForum  
Go Back   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 10.04.2015, 20:42   #1  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Join Date: 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) { }
Спасибо.
Old 10.04.2015, 22:12   #2  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Напишите код, который у вас реализует открытие формы - помогу с переписыванием под CRM Style.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Old 12.04.2015, 12:12   #3  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Join Date: 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 пока не вышло.

Last edited by magicandy; 12.04.2015 at 12:20.
Old 13.04.2015, 10:25   #4  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Quote:
Originally Posted by magicandy View Post
Сейчас это вот такой простенький код, вызываемый по кнопке с риббона:
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
This post has been rated by: magicandy (1).
Old 13.04.2015, 13:16   #5  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Join Date: 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>
Диалог пустой . Что не так?
Урл точно рабочий.
Old 13.04.2015, 13:45   #6  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Join Date: 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>
Такой вариант тоже не меняет ситуацию.
В Хроме просто висит пустой диалог, в ИЕ предупреждает о содержимом, и полностью обновляет страницу, открывая ЦРМ.
Old 13.04.2015, 13:49   #7  
a33ik is offline
a33ik
Чайный пьяница
a33ik's Avatar
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Join Date: 02.07.2008
Location: Greenville, SC
Странно, что не работает. Думаю, что тут ничего кроме экспериментов не остаётся.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Old 13.04.2015, 14:17   #8  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Konstantin Katsovich's Avatar
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Join Date: 22.10.2008
Location: Israel
Quote:
Originally Posted by magicandy View Post
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!!!
This post has been rated by: magicandy (1).
Old 13.04.2015, 21:28   #9  
magicandy is offline
magicandy
Участник
 
111 / 12 (1) ++
Join Date: 15.07.2014
Quote:
Originally Posted by Konstantin Katsovich View Post
Что показывет fiddler?
Реквест выполняется?
К своему стыду, данной магией пока не владею ,

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

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

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

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

Quote:
Originally Posted by a33ik View Post
необходимо было перебиндживать данные на онлоаде.
то есть, чтобы вылечить, мне нужно каждый раз делать некий онлоад?

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 10:21.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.