Dynamics 365 Javascript访问表单字段值

时间:2017-01-20 17:45:47

标签: javascript forms microsoft-dynamics webresource

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

带有" onload"的脚本网络资源;在表格上调用的事件" load"。这不起作用。我得到[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>

我想要实现的目标: 具有动态&#34; src&#34;的iframe基于表单上的字段值。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

返回具有textvalue属性的Option对象(请参阅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开始查找完整参考资料。