как передать программный элемент в скрипт веб-ресурса crm - PullRequest
0 голосов
/ 17 июня 2019

У меня проблемы с передачей имени элемента в javacript веб-ресурса Dyanamics CRM.

Этот код работает:

function OnFormLoad()
    {
        var subGrid = window.parent.document.getElementById("Claims")
        // do work 
    }

Этот код не:

function OnFormLoad(GridName)
    {
        var subGrid = window.parent.document.getElementById(GridName)
        // do work 
    }

Как передать имя элемента, с которым я хочу работать?

1 Ответ

2 голосов
/ 17 июня 2019

Пожалуйста, воздержитесь от использования document.getElementById в Dynamics, так как он не поддерживается.

Я полагаю, что вы пытаетесь получить GridContext и получить данные из этой сетки.

Например, для объекта «Учетная запись» у нас есть «Контакты в виде таблицы», а затем вы хотите получить данные из этой таблицы.

Я скопировал то же самое на учетную запись (OnLoad) и попытался получить данные из сетки контактов.

При добавлении события OnLoad я передал имя сетки в качестве параметра, как показано ниже.

enter image description here

Я добавил ниже onLoad Js для сущности Account и смог получить данные из сетки.

Примечание. Я добавил тайм-аут, поскольку при прямой загрузке не удалось загрузить всю страницу, а затем имя сетки было недоступно.

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

}

Если вы хотите выполнить какую-либо операцию по изменению данных formGird, есть еще один способ добиться этого. Сделайте вашу сетку редактируемой, и тогда вы сможете найти события для этой группы, как показано ниже, и сможете выполнять ваши операции.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...