命令吧菜单消失了



我在CRM中面临问题时,错误是当我创建约会并尝试保存它时,命令栏是在约会创建记录的负载后不可见的。我尝试检查JavaScript相关的代码,但没有关于问题源的提示,我应该说,在创建页面的页面刷新后,命令栏变得可见。

OnSave: function (e) {
    EOZ.Appointment.SetPivotalId();
    var eventArgs = e.getEventArgs();
    if (Xrm.Page.ui.getFormType() == 1 && eventArgs.getSaveMode() == 1 && !saveAndClose) {
        Xrm.Page.getAttribute("createdon").addOnChange(EOZ.Appointment.CreatedOnChanged);
    }
    else {
        saveAndClose = true;
        Xrm.Page.getAttribute("createdon").removeOnChange(EOZ.Appointment.CreatedOnChanged);
    }
},
CreatedOnChanged : function () {
    var id = Xrm.Page.data.entity.getId();      
    setTimeout(function () {
        Xrm.Utility.openEntityForm("appointment", id);
    }, 500);
}

nb:经过大量的JavaScript调试后,我注意到只有在"创建构成"的方法被称为" createNchanged"的方法时,就会发生不止一次,另一方面,如果只有一旦可见命令栏,就会称呼它。我不知道这是否是错误的来源,但这是代码行为中的唯一区别。

编辑:Dynamics CRM 2013,浏览器:Google Chrome最新版本,2017年3月3日我修改了我的代码如下:

CreatedOnChanged : function () {
if(!isCalled){
    var id = Xrm.Page.data.entity.getId();      
    setTimeout(function () {
        Xrm.Utility.openEntityForm("appointment", id);
    }, 500);
    isCalled = true;
    }
}

方法"创建构成"被称为数次,但其内容仅执行一次,并且命令栏正确显示...但是我实际上不是为什么当多次执行此方法时,命令栏会隐藏。

它看起来像您试图在保存之后刷新页面。

而不是试图重新打开形式,我认为强迫刷新可能更正确:

Xrm.Page.data.refresh(true);

我认为您围绕在onCreate()事件上注册该事件的代码可能会导致错误。丝带保存后会自动刷新(因此可以重新测试任何可见性/启用条件或JavaScript。

页面上的JavaScript错误可能会导致JavaScript重新呈现功能区失败。

最新更新