【问题标题】:crm 2011 xrm.page.getattribute returns null when there is valuecrm 2011 xrm.page.getattribute 有值时返回 null
【发布时间】:2015-02-13 21:22:46
【问题描述】:

我对 JScript 不是很熟练,但我在一个函数 webResource 中编写了以下代码,该函数应该在表单加载 (OnLoad) 时运行

var creationDateName = "createdon";
var today = new Date();
var creationDateAttr = Xrm.Page.getAttribute(creationDateName);
if(creationDateAttr!=null)
{
  /* Some more code */
}

问题是 Xrm.Page.getAttribute(creationDateName) 在字段上有值时返回 null(该字段没有显示在表单中,但在查找时它有值)。有趣的是,在我的测试组织中,相同的代码就像一个魅力,但是当我将它复制并粘贴到生产组织以发布解决方案时,它不能正常工作,这让我很困惑。知道会发生什么吗?

【问题讨论】:

    标签: javascript dynamics-crm-2011 getattribute xrm


    【解决方案1】:

    您需要使用 getValue 来返回字段中的值。您的代码只是检查页面上是否存在该字段。

    您还需要注意,在创建模式下,这些值未设置,因此您无法检索它们。在更新模式下,它们将起作用。所以你需要检查页面是否也处于更新模式:

    var formType = Xrm.Page.ui.getFormType();
    
    if (formType === 2) // Update
    {
        var creationDate = Xrm.Page.getAttribute(creationDateName).getValue();
    }
    

    【讨论】:

    • 非常感谢我实际上错过了页面上的字段。感谢您的回答,实际上添加了 getValue()
    【解决方案2】:

    愚蠢的我,我忘了添加我正在寻找的字段,这就是它返回 null 的原因,但感谢 Donal 的回答,实际上我试图验证该字段是否已满或为 null。谢谢

    【讨论】:

      【解决方案3】:

      它给你的是属性而不是值..

      要获得值,您必须编写如下代码

      var creationDateAttr = Xrm.Page.getAttribute(creationDateName);
      var valueDateAttr=creationDateAttr.getValue();
      

      var creationDateAttrValue = Xrm.Page.getAttribute(creationDateName).getValue();
      

      希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多