How to create inline dialog in MS CRM 2013
dynamics-crm-2013, javascript
Solution
Here is the example of displaying web resource in such dialog box.
In the parent window:
var src = <Relative_Url_of_the_Webresource>;
var DialogOptions = new Xrm.DialogOptions();
DialogOptions.width = 500;
DialogOptions.height = 400;
Xrm.Internal.openDialog(src, DialogOptions, null, null, CallbackFunction);
function CallbackFunction(returnValue){ }
Also, you have to include ClientGlobalContext.js.aspx in your web resource, for example:
<script type="text/javascript" src="/webresources/ClientGlobalContext.js.aspx"></script>
For passing the return value from the dialog box to the parent window:
Mscrm.Utilities.setReturnValue(result);
try {
closeWindow(true); //Close the dialog box
}
catch (e) { }
Problem
MS CRM 2013 introduced new approach to dialogs opened inside the system. In version 2011 look-ups were opened as separate (modal) windows, but in 2013 look-ups are opened as inline iframes on current page. Definitely it's possible via following jQuery statements: ``` $('body').append("<div id='InlineDialog_Background' class='ms-crm-InlineDialogBackground' tabindex='0' style='position: absolute; width: 100%; height: 100%; top: 0px; background-color: rgb(128, 128, 128); z-index: 1005; opacity: 0.5;'></div>"); $('body').append("<div id='InlineDialog' class='ms-crm-DialogChrome' tabindex='1' style='position: absolute; top: 50%; left: 50%; z-index: 1006; margin-top: -240px; margin-left: -400px; height: 540px; width: 800px;'><iframe id='InlineDialog_Iframe' name='InlineDialog_Iframe' src='custom_url' style='height: 540px; width: 800px; border: 0px;'></iframe><div id='DialogLoadingDiv' style='position: absolute; background-color: white; height: 480px; width: 800px; top: 50%; left: 50%; margin-top: -240px; margin-left: -400px; z-index: 1007; display: none;'><table class='ms-crm-LoadingContainer' style='width:100%;height:100%'><tbody><tr class='ms-crm-LoadingContainer'><td style='vertical-align: middle' align='center'><img id='DialogLoadingDivImg' alt='' src='/_imgs/AdvFind/progress.gif'><br>Loading...</td></tr></tbody></table></div></div>"); ``` But it also requires some additional routines to close such dialog properly. Is there any Microsoft-provided javascript methods to open such a `iframe`?