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

passing dynamic parameter (field values) to webresource on Dynamics CRM using custom parameter (data)

本文关键字:参数 Dynamics webresource CRM 上的 动态 自定义 数据 字段      更新时间:2023-09-26

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

即使有帖子说你可以传递动态值的自定义参数(数据)的web资源,我的经验是一样的阿迪的上面,这些参数只用于静态值。

在这种情况下,我发现将表单字段的值获取到web资源中最简单的替代方法甚至比我试图做的更简单。只要加上window.parent.就能得到Xrm.Page。所以你要做的就是:

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

别忘了把它放在webresource:

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

这个方框用于显示静态值。要使它动态,你需要使用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...")
}