【问题标题】:Why won't partial refresh work为什么部分刷新不起作用
【发布时间】:2014-07-03 19:49:21
【问题描述】:

尝试对多个项目进行另一个 XPage 嵌套部分刷新。当名为 conTenderType 的组合列表框值随 onChange 事件发生变化并刷新面板 ContractWorkflowPanel 和 ContractDetailPanel 时,将发生刷新。所有面板都在一个 djTabContainer 中。对目标面板组件的渲染条件没有要求。我已经在客户端 javascript 中为 conTenderType onChange 事件尝试了下面显示的脚本,但它不起作用。我也尝试将 onComplete 更改为 onStart 等。为什么这不起作用?

XSP.partialRefreshPost("#{id:conTenderType}", {
  onComplete: function() {
  XSP.partialRefreshGet("#{id:ContractWorkflowPanel}", {
      onComplete: function() { XSP.partialRefreshGet("#{id:ContractDetailPanel}"); }
  }) 
}
})

谢谢

【问题讨论】:

  • 您使用的是哪个版本的 Notes/Domino,您在哪些浏览器中进行了测试?
  • 在 Firefox 中测试代码并激活开发者面板,看看是否有任何 javascript 错误
  • @MichaelG.Smith - Domino 版本是 8.5.3,浏览器是 I.E 8
  • 按照 Frederik 的建议,在 FF 或 Chrome 中进行测试。我很确定我在使用早期版本的 IE 和 onChange 时遇到了问题。
  • @FredrikNorling - 我已经在 FireFox 中打开了它,并使用“Shift”+ F2 打开了我认为是开发人员面板的内容,它在底部浏览器中打开了一个小型瘦控制台。恐怕我现在不知道该怎么办。控制台有一个 JS 按钮,我确保选择了该按钮,我更改了组合框的值,它确实在 Javascript 面板中放置了一个条目,但没有什么可以帮助我!!

标签: javascript xpages


【解决方案1】:

是否有任何经过验证的字段?除非勾选“未经验证的处理数据”,否则将进行验证。 (防止发生验证的另一种方法是勾选“不验证或更新数据”,但是您将不会使用用户为组合框选择的值更新服务器端组件树,因此没有必要设置.)

如果未设置 execId,则验证页面上的所有控件。如果验证失败,发送回浏览器的唯一更新将是验证失败的错误消息。

我始终建议确保您的刷新区域包含错误消息控件,以便您知道验证是否失败。如果您不需要验证,请勾选“未经验证处理数据”。如果这样做,并且您不想刷新包含错误消息控件的区域,则需要设置 execId,但您需要阅读并了解其作用,以确保用户输入的值是根据需要更新,不会被浏览器的响应覆盖。

【讨论】:

  • 感谢保罗·斯蒂芬·威瑟斯。这可能是问题所在。我知道 ContractDetailPanel 令人耳目一新,因为在更改 conTenderType 组合框值后,组合框突出显示几乎立即消失。但是,ContractWorkflowPanel 包含许多字段,并且它被设置为具有合同工作阶段的工作流,因此我知道那里有验证工作并且验证是必要的。我现在在想,用户可能只需要使用“保存”按钮来刷新内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-19
相关资源
最近更新 更多