Xrm.Utility.openDialog方法已被弃用,但为什么呢?

时间:2018-06-21 15:38:17

标签: dynamics-crm

不建议使用方法Xrm.Utility.openDialog(),但是我找不到有关此方法的任何信息,以及此方法的替代方法?

您能帮我找到openDialog()的替代方法吗?

3 个答案:

答案 0 :(得分:1)

据我所知,从来没有一个叫做Xrm.Utility.openDialog()的函数。

几年前,开发人员使用window.showModalDialog()从Dynamics CRM中打开自定义模式窗口。但是,像Chrome这样的流行浏览器不再支持此功能,而该功能无论如何都是IE发明的。模态对话框会阻止用户访问主打开窗口,并损害平板电脑和智能手机界面上的用户体验,因此,如今,它们已被视为一种糟糕的设计选择。

作为替代方案,一些Dynamics CRM开发人员开始使用内部功能Xrm.Internal.openDialog()。但是,此功能从未成为受支持的API的一部分,因此不应使用。

一种替代方法是在页面正文的末尾插入een IFrame并在其中显示对话框。这是当前实现内置Dynamics CRM对话框的方式。

答案 1 :(得分:1)

Microsoft告诉我必须使用Xrm.Utility.openWebResource()方法。 谢谢

答案 2 :(得分:0)

我们有一个自定义功能区按钮,可使用JavaScript按需运行对话框。这是您可能会发现有用的代码段。我们不使用.openDialog()

window.open(
    Xrm.Page.context.getClientUrl() + "/cs/dialog/rundialog.aspx?DialogId="
    + encodeURIComponent(DIALOG_ID)
    + "&EntityName=new_entityname&ObjectId=" + encodeURIComponent(ENTITY_ID),
    "formRibbon_runDialog_" + DIALOG_ID + "_" + ENTITY_ID,
    "height=480, width=615"
);

值得注意的是,一般而言,Dialogs已被Microsoft弃用,但要真正从系统中删除它们可能要花费很多年,因此不必担心。

如果您有任何疑问,请告诉我。