使用自定义参数(数据)将动态参数(字段值)传递给Dynamics CRM上的webresource

时间:2014-08-05 13:40:54

标签: javascript dynamics-crm-2011

无法将值输入到webresource iframe网址的查询字符串中。我将字段名称(模式名称)添加到自定义参数(数据)并获取查询字符串(静态)上的字段名称,而不是字段值。

2 个答案:

答案 0 :(得分:2)

尽管有帖子说您可以将动态值传递给网络资源的自定义参数(数据),但我的经验与上面的Adi相同,那些参数仅适用于静态值。

在这种情况下,我发现将表单字段的值添加到Web资源中的最简单的替代方法甚至比我尝试的更简单。只需添加:window.parent.即可访问Xrm.Page。所以你要做的就是:

var formfieldValue = window.parent.Xrm.Page.getAttribute("CRMFieldSchemaName").getValue();

请勿忘记将其放在网络资源上的javascript标记中:

<script type="text/javascript">
  $(function () {
     var formfieldValue = window.parent.Xrm.Page.getAttribute("CRMFieldSchemaName").getValue();
  });
</script>

答案 1 :(得分:0)

该框用于静态值。要使其动态化,您需要使用Javascript构建IFRAME URL。

我使用XrmIframe作为框架,以使Iframe编码变得简单。重要的部分发生在OnLoad事件中。

请记住,这只是一个基本的例子。

//SDK Iframe helper example
function XrmIframe(sId) {
    if (sId == undefined) return;

    var xiObject = this;
    xiObject.Ctl = Xrm.Page.getControl(sId);

    xiObject.Get = function () { 
        return xiObject.Ctl.getSrc(); 
    }

    xiObject.Set = function (sUrl) { 
        xiObject.Ctl.setSrc(sUrl); 
        return xiObject; 
    }               
}

//entity onload js
var myIframe;
function OnLoad() {
    //construct iframe
    myIframe = new XrmIframe("IFRAME_Test");
    //load iframe
    myIframe.Set("construct url with dynamic values here...")
}