Модальное окно в стиле CRM
Сегодня запилим такую нехитрую штуку как модальное диалоговое окно (в виде DIV’а). При этом будем использовать стандартную функцию, которую использует сам CRM для отображения модальных окон.
- Для начала создайте такой HTML Веб-ресурс с именем new_di.html:
<html> <head> <meta charset="utf-8"> <script src="/WebResources/ClientGlobalContext.js.aspx" type="text/javascript"></script> <script> function closeDlg() { var result = "123"; Mscrm.Utilities.setReturnValue(result); try { closeWindow(true); // Close the dialog box } catch (e) { } } </script> </head> <body> <h1>My First Heading</h1> <p>My first paragraph.</p> <input id="Close" type="button" value="Close" onclick="closeDlg();" /> </body> </html>
Здесь у нас простая HTML-страница, которая содержит два важных элемента:
- Функцию closeDlg, которая записывает «ответ» работы диалога в системную переменную и закрывает диалог;
- Кнопку, по которой будет закрывать диалог.
- Затем создайте JS Веб-ресурс с таким кодом:
function testDlg() { var DialogOption = new Xrm.DialogOptions; DialogOption.width = 500; DialogOption.height = 420; var WebResourceURL = "http://crm2015/superfirma/WebResources/new_di.html"; Xrm.Internal.openDialog(WebResourceURL, DialogOption, null, null, CallbackFunction); } function CallbackFunction(returnValue) { alert(returnValue); }
Функция testDlg открывает с помощью стандартной CRM функции Xrm.Internal.openDialog модальный диалог, а внутрь него отображает HTML-страницу по заданному URL HTML Веб-ресурса. При закрытии выводим в алерте переданную из него переменную;
- Далее подключите JS Веб-ресурс к форме и вызовите функцию testDlg – откроется модальное диалоговое окно. Щелкните по кнопке Close – диалог закроется, а в алерте отобразится возвращенная из него переменная.