保存后不创建新表单

时间:2014-03-04 05:41:51

标签: dynamics-crm dynamics-crm-2013

2011年 crm 工作良好,但 crm 2013 online

机会实体创建我只显示的新记录表格:

1. 某些属性(所有其他字段/部分/标签隐藏在表单上)
2.和 Html按钮一样

function OnFormLoad(){   
  if(Xrm.Page.ui.getFormType() == 1 ) {

     SetRequiredLevelToNone();

     createHtmlButton("Save");

     HideTabsAndSections()    

  }
  else {    

  }
}

点击 Html按钮,会触发以下功能。

function showWholeForm() {
  Xrm.Page.data.entity.save();
}

我想在保存后显示表单的所有字段,意味着要重新加载整个表单 在crm 2011工作

3 个答案:

答案 0 :(得分:0)

CRM 2013中的save方法不再刷新页面。在这种情况下,应使用新的 refresh 方法,如下所示:

Xrm.Page.data.refresh(save).then(successCallback, errorCallback);
  • save :如果要保存数据,则传递为true的布尔值 刷新后。
  • successCallback :操作成功时调用的函数
  • errorCallbak :操作失败时调用的函数,将传递一个具有2个属性的对象 - 错误代码(数字)和本地化错误消息(字符串) < / LI>

您可以找到此处记录的方法:http://msdn.microsoft.com/en-us/library/dn481607(v=crm.6).aspx

答案 1 :(得分:0)

我认为如果您希望一致性 CRM 2011 ,请先禁用自动保存。

function OnSaveDisableAutoSave(eventArgs) {
   var saveType = eventArgs.getEventArgs().getSaveMode();
   if (saveType == 70 ||saveType  == 2)
   { //Disable AutoSave
      eventArgs.preventDefault();
   }
}

然后

function showWholeForm() {
   Xrm.Page.data.refresh(true).then(successCallback, errorCallback);
}

答案 2 :(得分:0)

要解决此问题,您可以执行以下操作:

var saved = false;

function onLoad(){
    checkIfFormShouldBeReadOnly();
    attachEvent();
}

function attachEvent() {
    Xrm.Page.data.entity.addOnSave(executeOnSave);
}

function executeOnSave(saveExecution) {
    if (!saved) {
       saved = true;
       Xrm.Page.data.save().then(
          function () {
             checkIfFormShouldBeReadOnly();
          },
          function (errorCode, message) {
             Xrm.Page.data.refresh();
          }
       );
   }
}