如何将软编码元素传递给 crm 网络资源脚本
how to pass softcoded element to crm web resource script
我在将元素名称传递到 Dyanamics CRM Web 资源 javacript 时遇到问题。
此代码有效:
function OnFormLoad()
{
var subGrid = window.parent.document.getElementById("Claims")
// do work
}
此代码不会:
function OnFormLoad(GridName)
{
var subGrid = window.parent.document.getElementById(GridName)
// do work
}
如何传入要使用的元素的名称?
请避免在 Dynamics 中使用 document.getElementById,因为它不受支持。
我相信您正在尝试获取 GridContext 并从该网格获取数据。
例如,在客户实体中,我们将联系人作为网格,然后您希望从该网格获取数据。
我在帐户实体 (OnLoad) 上复制了相同的内容,并尝试从联系人网格中获取数据。
添加 OnLoad 事件时,我已将网格名称作为参数传递,如下所示。
我在帐户实体的下方添加了 onLoad Js,并且能够从网格中检索数据。
注意:我添加了超时,因为直接触发 onload 无法加载完整页面,然后网格名称不可用。
function onLoad(executionContext,gridName){
setTimeout(function(){ getGridDatat(executionContext,gridName); }, 3000);
}
function getGridDatat(executionContext,gridName){
debugger
var formContext = executionContext.getFormContext();
var gridContext = formContext.getControl("Contacts"); // get the grid context
var myRows = gridContext.getGrid().getRows();
/*var myRow = myRows.get(arg);
var gridRowData = myRow.getData();*/
var firstRow =myRows.get(0).getData();
var firstRowAllAttributes = firstrow.entity.attributes.getAll()
var firstRowfirstAttributeValue = firstrow.entity.attributes.get(0).getValue()
}
如果你想对数据形式的改变执行一些操作,那么还有一种方法可以实现。将您的网格设置为可编辑,然后您可以找到该网格的事件,如下所示,并可以执行您的操作。
我在将元素名称传递到 Dyanamics CRM Web 资源 javacript 时遇到问题。
此代码有效:
function OnFormLoad()
{
var subGrid = window.parent.document.getElementById("Claims")
// do work
}
此代码不会:
function OnFormLoad(GridName)
{
var subGrid = window.parent.document.getElementById(GridName)
// do work
}
如何传入要使用的元素的名称?
请避免在 Dynamics 中使用 document.getElementById,因为它不受支持。
我相信您正在尝试获取 GridContext 并从该网格获取数据。
例如,在客户实体中,我们将联系人作为网格,然后您希望从该网格获取数据。
我在帐户实体 (OnLoad) 上复制了相同的内容,并尝试从联系人网格中获取数据。
添加 OnLoad 事件时,我已将网格名称作为参数传递,如下所示。
我在帐户实体的下方添加了 onLoad Js,并且能够从网格中检索数据。
注意:我添加了超时,因为直接触发 onload 无法加载完整页面,然后网格名称不可用。
function onLoad(executionContext,gridName){
setTimeout(function(){ getGridDatat(executionContext,gridName); }, 3000);
}
function getGridDatat(executionContext,gridName){
debugger
var formContext = executionContext.getFormContext();
var gridContext = formContext.getControl("Contacts"); // get the grid context
var myRows = gridContext.getGrid().getRows();
/*var myRow = myRows.get(arg);
var gridRowData = myRow.getData();*/
var firstRow =myRows.get(0).getData();
var firstRowAllAttributes = firstrow.entity.attributes.getAll()
var firstRowfirstAttributeValue = firstrow.entity.attributes.get(0).getValue()
}
如果你想对数据形式的改变执行一些操作,那么还有一种方法可以实现。将您的网格设置为可编辑,然后您可以找到该网格的事件,如下所示,并可以执行您的操作。