Не удается настроить setValue для работы с редактируемой сеткой Dynamics CRM - PullRequest
0 голосов
/ 09 мая 2018

Я надеялся получить несколько советов о том, как сделать setValue в редактируемой сетке Dynamics CRM 365 (onpremise):

Что бы я ни пытался, я не могу обновить значения в сетке. Этот код получает ссылку на атрибут, но setValue, похоже, не влияет на сетку.

    function updateDocsOK(ctlName, grdName, attributeName) {
    var selectedRow = null;
    var attributeColl = null;
    var twoOptionValue = 0;


    try {

        //This is the Yes/No value in the dropdown
        var ctlValue = Xrm.Page.getAttribute(ctlName).getValue();
        if (ctlValue) {
            twoOptionValue = 1;
        }
        //get the selected rows - use the getControl method and pass the grid name.
        selectedRow = Xrm.Page.getControl(grdName).getGrid().getRows();

        //loop through rows and get the attribute collection
        selectedRow.forEach(function (row, rowIndex) {


            var att = row.getData().getEntity().attributes.getByName(attributeName);

            //This setValue does not work on a two-option
            if (att) {
                console.log(att.getValue());
                att.setValue(twoOptionValue);
                console.log(att.getValue());
            }


            //This setValue does not work on a text field
            att = row.getData().getEntity().attributes.getByName("new_testtext");

            if (att) {
                att.setValue("hello");
            }


        });
    } catch (e) {
        Xrm.Utility.alertDialog(e.message);
    }
}

1 Ответ

0 голосов
/ 09 мая 2018

Вы должны выбрать опцию для передачи контекста исполнения и использовать executionContext.getFormContext() для получения текущей строки в редактируемой сетке.

function updateDocsOK(executionContext) {
    var entityObject = executionContext.getFormContext().data.entity;
    var att = entityObject.attributes.getByName("new_testtext");
    att.setValue("hello");
 }

вы не можете использовать команды Xrm.Page в редактируемойсетки.В моем примере я хочу установить значение вероятности.

В форме что-то вроде Xrm.Page.getAttribute(“closeprobability”).setValue(80) поможет.Но это не будет работать с редактируемыми сетками.

Вместо этого мне нужно использовать новый метод, который был выпущен с Dynamics 365 (getFormContext).

getFormContext возвращает ссылку для любой формы (Xrm.Page) или редактируемая сетка (GridRow).Это означает, что теперь у нас есть код, который будет работать в обеих ситуациях.

Подробнее

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