Dynamics 365 Javascript 访问表单字段值

Dynamics 365 Javascript to access form field values

如何在 Dynamics 365 online 中使用 Javascript 访问表单字段值?这是我试过的:

一个脚本 Web 资源,其中包含在 "load" 表单上调用的 "onload" 事件。这是行不通的。我得到 [Object object] 但我希望得到一个字符串。调试它显示没有具有字段值的属性

function loadForm()
{
    var value1 =    Xrm.Page.data.entity.attributes.get("new_dealercode").getValue();
    alert(value1);
}

我在表单中包含的 HTML 网络资源,这没有任何作用,但我知道它正在被调用,因为如果我在其上放置警报,它就会收到警报。

<html>
<head>
<script type="text/javascript">
    var value1 = window.parent.Xrm.Page.getAttribute("new_dealercoder").getValue();
    alert(value1);
</script><meta charset="utf-8">
</head><body><br></body>
</html>

我想要达到的目标: 基于表单上的字段值的具有动态 "src" 的 Iframe。

您可以将访问表单字段值的代码缩短为

Xrm.Page.getAttribute("new_dealercode").getValue();

但是,如果您要处理 OptionSet 字段(下拉选择),则需要使用

Xrm.Page.getAttribute("new_dealercode").getSelectedOption();

其中 returns 具有 textvalue 属性 的选项对象(参见 MSDN)。
您会发现 Lookup 和 DateTime 字段的获取和设置更加复杂。

如果您需要检索 Lookup 属性的属性,您将处理具有属性 idnamelogicalname.

的 EntityReferences 数组

获取id,访问数组中的第一个元素:

var dealerobj = Xrm.Page.getAttribute("new_dealercode").getValue();
var dealerid = dealerobj[0].id;

警告!您可能希望通过检查空值来强化代码!


关于您的第二个问题,您可以使用

访问iframe表单控件的源代码
Xrm.Page.getControl("your_control_name_here").setSrc("$webresources\new_your.html")

MSDN Client-side programming reference 开始查找完整参考。