0

我正在尝试将值附加到 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,但是更改永远不会显示在表单上。

我错过了一步吗?

4

2 回答 2

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();
}

Web 资源上的refreshTable()方法包含所有逻辑,从window.parent.Xrm.yadda.yadda

于 2013-06-14T09:55:23.540 回答
1
  1. 获取相关对象的值,需要在 html webresource 中进行。您可以使用 OData 查询来检索值。

  2. 获得值后,分配给您的 html 元素,也在 html webresource 中执行此操作。

例如:你得到的值是:“VALUE”;

您的 html 网络资源中必须有一个元素 - 例如<td id="myid"></td>

然后像这样分配值:

document.getElementById("myid").innerHTML = "VALUE";
于 2013-06-14T07:03:05.823 回答