javascript - CRM Xrm.Page.ui.formSelector.items.get() 返回 Null

标签 javascript dynamics-crm-2011

我编写了 javascript 代码并将其添加为实体(联系人)加载事件的表单。在该代码中,我想从打开的表单导航到另一个表单。

对于以前的开发,我正在尝试获取导航所需的打开表单的 ID。 代码如下所示。

  var id = Xrm.Page.ui.formSelector.getCurrentItem().getId();

      if (itemid != null) 

    Xrm.Page.ui.formSelector.items.get(id).navigate();

Xrm.Page.ui.formSelector.getCurrentItem() 函数返回空值。它没有得到该项目,所以我无法获得值(value)。该代码有什么问题,我错过了什么?

提前感谢您的回复。

最佳答案

您将值分配给 id 变量,但在您的 IF 条件中检查 itemid。 在 if 条件下,只需将 if (itemid != null) 替换为 if (id != null)

测试您的 JavaScript。您可以运行以下功能:

var formItem = Xrm.Page.ui.formSelector.getCurrentItem();
if (formItem != null)
{
    var itemId = formItem.getId();
    var itemLabel = formItem.getLabel();
    alert(itemId + " | " itemLabel);
}
else
{
    alert("Unable to get current form");
}

最后,要在表单之间切换,下面是一个非常有用的函数,它将表单名称作为参数。您可以根据需要进行更改以使用表单 ID。

function redirectToForm(formName) {
    var currentForm = Xrm.Page.ui.formSelector.getCurrentItem();
    if (currentForm != null) { 
        if (currentForm.getLabel().toLowerCase() != formName.toLowerCase()) { //make sure it's not already this form
            var availableForms = Xrm.Page.ui.formSelector.items.get();
            for (var i in availableForms) {
                var form = availableForms[i];
                if (form.getLabel().toLowerCase() == formName.toLowerCase()) {
                    form.navigate();
                }
            }
        }
    }
}

关于javascript - CRM Xrm.Page.ui.formSelector.items.get() 返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25309403/

相关文章:

javascript - Django 模板,在 javascript post 后重新加载

javascript - 如何只修改 react .map 函数中的一个元素?

dynamics-crm-2011 - 无法更改业务部门

javascript - 使用外部 URL 中的变量填充文本框,无需提交表单

javascript - 尝试在代码执行中添加延迟(在警报发生之前)

c# - 电子邮件到达时的 CRM 2011 更新事件

dynamics-crm - 为 CRM 2011 编写 native SQL

javascript - 如何使用JavaScript获取dynamic cm中的帐户名?

mysql - 如何在 Dynamics CRM 的一份报表中使用两个预过滤(使用 CRMAF_ )?

javascript - 外部类调用 LitElement 组件方法(传递 html 模板),组件方法更新其 html 模板