【发布时间】:2014-03-04 14:22:07
【问题描述】:
我创建了一个自定义的“解决案例”窗口,它取代了 CRM 的默认案例解决窗口。我所做的是我用我自己的按钮替换了“解决案例”功能区按钮,单击该按钮会打开一个自定义 HTML 页面。然后,当用户在该页面上按下 Resolve 按钮时,会创建一个 SOAP 消息来解决该特定情况。在 SOAP 消息之后,我调用 window.close() 来关闭“解决案例”窗口。之后我调用 location.reload() 以便重新加载主窗体并刷新功能区。所以它(从用户的角度来看)就像默认的案例解析窗口一样工作。
现在有一个问题。如果用户在解决案例后重新激活它,然后再次解决它,我会收到以下消息(来自浏览器的弹出警报):
“要重新显示网页,浏览器需要重新发送您之前提交的信息。如果您正在购买,您应该点击取消以避免重复交易。否则,请点击重试重新显示网页。 "
我发现问题是因为我使用 location.reload() 重新加载主表单,因此出现重复的表单提交。我尝试使用 window.location = window.location、location.href = location.href 等代替 location.reload() 但它们都不适合我。他们似乎刷新了主窗体(至少它闪烁了),但功能区没有刷新。我也尝试使用 Xrm.Page.ui.refreshRibbon(),但也没有什么不同。
我从互联网上搜索了一个解决方案,人们正在谈论 Post/Redirect/Get 模式。我找不到任何明确的示例如何实现它,所以我希望你能帮助我理解它以及如何在这种特殊情况下使用它。
如果需要,将提供更多信息和代码示例。
【问题讨论】:
-
这里提供的任何一种解决方案都有帮助吗? [在自定义子表单上完成操作后,如何在 CRM Dynamics 5.0 中刷新父表单?][1] [1]:stackoverflow.com/questions/4094058/…
-
您能否提供一些示例代码,包括 window.location 示例?
标签: javascript dynamics-crm-2011 dynamics-crm post-redirect-get