1

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

带有“onload”事件的脚本 Web 资源,在“load”表单上调用。这行不通。我明白[Object object]了,但我期待一个字符串。调试它显示没有具有字段值的属性

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

我在表单中包含的一个 HTML Web 资源,它什么都不做,但我知道它正在被调用,因为如果我在它上面发出警报,它就会发出警报。

<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。

4

1 回答 1

3

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

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

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

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

它返回一个带有textandvalue属性的 Option 对象(参见MSDN)。
您会发现 Lookup 和 DateTime 字段的获取和设置更加复杂。

如果您需要检索 Lookup 属性的属性,您正在处理一组具有属性的idEntityReferencesnamelogicalname

要获取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 客户端编程参考开始以查找完整参考。

于 2017-01-20T23:40:09.413 回答