CRM 9 - Привязка HTML таблицы / сетки динамически на основе записей из JS - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю над страницей HTML внутри Dynamics CRM 9.0. Я написал веб-ресурс JavaScript, который я вызвал через HTML-страницу. В моем JavaScript есть функция, которая выбирает данные из сущности CRM, как показано ниже:

var Query = "$select=ParameterValue,transactioncode,ParameterName&$filter= PhonceCallId/Id eq(guid'" + phoneid + "')";
 XrmSvcToolkit.retrieveMultiple({
    entityName: entity ,  
    odataQuery: Query,
    async: false,
    successCallback: successCallback,
    errorCallback: errorCallback
});

Теперь, с помощью PhoneCallId, я извлекаю записи и, пожалуйста, обратите внимание, что записи имеют динамический характер, что означает, что число строк, извлекаемых для каждого попадания, не является фиксированным (я могу получить 3 строки в первый раз, 5 строк в следующий раз и так далее).

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

1 Ответ

1 голос
/ 08 апреля 2019

Существуют разные способы достижения этого. Например, вот один из моих Fiddle , использующий KnockoutJS, который заполняет данные. В этой скрипте данные статичны для объяснения, и это может быть динамически заполнено из CRM, и вы могли бы показать, сколько строк когда-то хотели бы показать на странице. Ниже код просто ссылка на скрипку

В основном приведенный ниже код - это то, что вам нужно для получения данных из CRM в локальный массив

var req = new XMLHttpRequest(); 
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v9.1/accounts?$select=accountnumber,emailaddress1,name&$filter=accountid ne null", true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
var tempArray = new array();
req.onreadystatechange = function() {
    if (this.readyState === 4) {
        req.onreadystatechange = null;
        if (this.status === 200) {
            var results = JSON.parse(this.response);
            for (var i = 0; i < results.value.length; i++) {
                var accountnumber = results.value[i]["accountnumber"];
                var emailaddress1 = results.value[i]["emailaddress1"];
                var name = results.value[i]["name"];
                tempArray.push(results.value[i]["accountnumber"],results.value[i]["emailaddress1"],results.value[i]["name"]);

            }
        } else {
            Xrm.Utility.alertDialog(this.statusText);
        }
    }
};
req.send();

Обычные HTML-таблицы с добавлением данных. Ссылка для справки

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