【问题标题】:Rendered Panel won't hide渲染面板不会隐藏
【发布时间】:2017-09-27 22:49:14
【问题描述】:

我有一个使用 Primefaces 的小型应用程序,JSF 允许用户在单击“编辑”按钮时编辑文本内容。单击编辑按钮时,页面上会显示一个带有“退出”按钮的面板,以退出编辑模式。这一切都很好。但是,当用户单击退出按钮时,面板应该再次隐藏。以下是相关代码:

   <p:panel id="editModePanel" rendered="${editorBean.id>0}">
     <p>Edit Mode: All changes will be saved to existing blog post</p>
                  <p:commandButton  accesskey=""value="Exit"
                                     update="@form" 
                                     action="#{editorBean.exitEditMode()}"
                                     onclick="PF('block').show();"
                                     oncomplete="PF('block').hide();"
                                     styleClass="ui-priority-primary"
                                     >
                   </p:commandButton>
            </p:panel>

在呈现面板之前,当用户单击编辑按钮(未显示)时,editorBean.id 值被设置为一个数字,这会导致面板在表单提交时呈现。

当用户单击退出以离开编辑模式时,editorBe.id 设置为空,我已经验证了这种情况正在发生。但是,面板不会隐藏,它会保持渲染状态。

我尝试使用 onclick 来打开和关闭面板。但是,视图是 Sessionscoped,因此如果用户刷新页面或关闭浏览器窗口,我需要保持状态。

提前致谢!

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    所以这只是一个新手错误。问题是我的支持 bean 中的变量范围。我在方法中设置了id = null,而不是全局editorBean.id = null。一旦我做出改变,它就完美地工作了。- 经验教训

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-04
      • 2013-03-15
      • 2016-01-14
      • 2023-03-10
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      相关资源
      最近更新 更多