我们要求保存后刷新表单(以确保某些隐藏/显示逻辑根据字段值按预期工作)。

当前,保存记录后,表单不会自动刷新。

我浏览了一些文章,并找到了以下引用资料:
http://msdn.microsoft.com/en-us/library/dn481607%28v=crm.6%29.aspx

当我尝试执行以下任一操作时,它将导致无限循环并引发“超出Callstack的最大限制”错误。

  • OnSave(context)
    {
      //my logic
      ...
      ...
    
      Xrm.Page.data.save.then(SuccessOnSave, ErrorOnSave);
    }
    
      function SuccessOnSave()
     {
      //force refresh
       Xrm.Page.data.refresh();
     }
      function ErrorOnSave()
      {
        //do nothing
      }
    
  •   OnSave(context)
     {
       ...
      ...
      //force refresh
      Xrm.Page.data.refresh(true).then(SuccessOnSave, ErrorOnSave);
    }
    
      function SuccessOnSave()
     {
      //do nothing
     }
      function ErrorOnSave()
      {
        //do nothing
      }
    

  • 有人可以解释一下如何使用refresh或save方法强制刷新表格吗?

    拉杰什

    最佳答案

    对我来说,这就是解决问题的方法(CRM 2015)

    // Save the current record to prevent messages about unsaved changes
    Xrm.Page.data.entity.save();
    
    setTimeout(function () {
        // Call the Open Entity Form method and pass through the current entity name and ID to force CRM to reload the record
        Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId());
    }, 3000);
    

    10-07 20:11