修改Web资源中的HTML

时间:2013-06-13 16:40:15

标签: javascript html dynamics-crm-2011 dynamics-crm

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

我错过了一步吗?

2 个答案:

答案 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)

  1. 获取相关对象的值,您需要在html webresource中执行此操作。您可以使用OData查询来检索值。

  2. 获取值后,分配给您的html元素,也可以在html webresource中进行。

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

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

    然后像这样分配值:

    document.getElementById("myid").innerHTML = "VALUE";