Как правильно отключить поле формы в UCI с помощью javascript

#dynamics-crm #dynamics-crm-2011 #crm #dynamics-crm-online #xrm

#dynamics-crm #dynamics-crm-2011 #crm #dynamics-crm-online #xrm

Вопрос:

Я пытаюсь отключить поле даты (выбрав дату) в версии UCI Dynamics365 CRM. Он отключает его, но при выборе даты дважды. Он отлично работает в классическом режиме, но не в UCI

вот мой код.

 function ConfirmFunction(){
    debugger;
    var get_aob_date = Xrm.Page.ui.controls.get("ies_aobdatercvd");
    var confirmStrings = { text:"This is a confirmation.", title:"Confirmation Dialog" };
    var confirmOptions = { height: 200, width: 450 };
    Xrm.Navigation.openConfirmDialog(confirmStrings, confirmOptions).then(
function (success) {    
    if (success.confirmed)
         get_aob_date.setDisabled(true);
    else
        Xrm.Page.getAttribute("ies_aobdatercvd").setValue();
});

}
  

Комментарии:

1. вероятно, макет не обновляется, поскольку вы делаете это внутри promise (успешный обратный вызов). дикое предположение, хотя

Ответ №1:

Это в пользовательском веб-ресурсе?

Использование Xrm.Страница устарела для всего, кроме пользовательских веб-ресурсов (в настоящее время), и ее следует заменить контекстом выполнения.

https://learn.microsoft.com/en-us/power-platform/important-changes-coming#some-client-apis-are-deprecated

Вот как должен выглядеть ваш код для отключения вашего поля:

 function DisableDate(executionContext){

var formcontext = executionContext.getFormContext();
formcontext.getControl("ies_aobdatercvd").setDisabled(true);
}
  

Когда вы добавляете событие в onLoad (или любое другое событие), вам нужно будет установить флажок «Передать контекст выполнения»:

Свойства обработчика событий

Комментарии:

1. Что не работает? Что происходит при загрузке формы, когда вы добавляете функцию и присоединяете ее к событию onLoad? Есть ли какая-либо ошибка? Есть ли что-нибудь в консоли?