我正在尝试将值附加到Microsoft Dynamics CRM 2011中的HTML Web资源。我正在使用REST服务将相关对象的值获取到当前表单,并希望以html格式显示它们。
目前我已经设置了一个带有表的HTML Web资源,但似乎无法更新行。
鉴于此代码:
alert(document.getElementById('WebResource_consultdetails').innerHTML);
document.getElementById('WebResource_consultdetails').innerHTML = "DETAILS ARE HERE";
alert(document.getElementById('WebResource_consultdetails').innerHTML);
...第一个警报为空,第二个警报具有正确的html,但更改从不显示在表单上。
我错过了一步吗?
答案 0 :(得分:2)
我以稍微不同的方式影响了HTML Web资源。
不是让逻辑在CRM表单中运行并尝试影响Web资源,而是转向它并在CRM表单上调用事件来调用Web资源中的方法。这是我从工作系统中扯掉的一个例子。
function prodformOnLoad() {
switch (Xrm.Page.ui.getFormType()) {
case (1):
case (5):
case (6):
// do nowt
break;
default:
// everything else
Xrm.Page.data.entity.attributes.get("productid").fireOnChange();
}
}
function productOnChange() {
Xrm.Page.getControl("WebResource_Costs").getObject().contentWindow.window.refreshTable();
}
网络资源上的refreshTable()
方法具有所有逻辑,从window.parent.Xrm.yadda.yadda
收集信息
答案 1 :(得分:1)
获取相关对象的值,您需要在html webresource中执行此操作。您可以使用OData查询来检索值。
获取值后,分配给您的html元素,也可以在html webresource中进行。
例如: 你得到的价值是:“VALUE”;
您的html网络资源中必须有一个元素 - 例如:<td id="myid"></td>
;
然后像这样分配值:
document.getElementById("myid").innerHTML = "VALUE";