1

我对 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 (该字段没有显示在表单中,但在查找时它有一个值)。有趣的是,在我的测试组织中,相同的代码就像一个魅力,但是当我将它复制并粘贴到生产组织以发布解决方案时,它不能正常工作,这让我很困惑。知道会发生什么吗?

4

3 回答 3

4

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

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

var formType = Xrm.Page.ui.getFormType();

if (formType === 2) // Update
{
    var creationDate = Xrm.Page.getAttribute(creationDateName).getValue();
}
于 2014-12-15T17:50:42.860 回答
2

它为您提供属性而不是值..

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

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

或者

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

希望这会有所帮助

于 2014-12-16T04:53:45.190 回答
0

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

于 2014-12-15T21:48:50.353 回答