首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么呈现不是在面板上工作

为什么呈现不是在面板上工作
EN

Stack Overflow用户
提问于 2015-04-09 14:04:28
回答 1查看 1.2K关注 0票数 0

如何动态显示或隐藏面板?

在下面给出的示例中,当我单击btn-1时,panel-2将显示并隐藏panel-1。但是,当我单击btn-2时,什么都不会发生。

ManagedBean

代码语言:javascript
复制
@ManagedBean
@ViewScoped
public class SampleController implements Serializable {
    private Boolean showPanel;

    public void button1() {
        showPanel = Boolean.FALSE;
    }

    public void button2() {
        showPanel = Boolean.TRUE;
    }

    public Boolean showPanel1(){
        return showPanel;
    }

    public Boolean showPanel2(){
        return ! showPanel;
    }
}

XHTML

代码语言:javascript
复制
<h:form id="form">
    <h:panelGroup id="container-panel-1">
          <h:panelGroup id="panel-1" rendered="#{sampleController.showPanel1()}">
              <p:commandButton id="btn-1"
                   actionListener="#{sampleController.button1}" 
                   update=":form:container-panel-1, :form:container-panel-2" />
          </h:panelGroup>
    </h:panelGroup>
    <h:panelGroup id="container-panel-2">
          <h:panelGroup id="panel-2" rendered="#{sampleController.showPanel2()}">
              <p:commandButton id="btn-2"
                   actionListener="#{sampleController.button2}" 
                   update=":form:container-panel-1, :form:container-panel-2" />
          </h:panelGroup>
    </h:panelGroup>
</h:form>

我希望你能帮我这个忙。

谢谢你,贝尔

EN

回答 1

Stack Overflow用户

发布于 2015-04-12 06:21:35

此代码是有效的:

查看:

代码语言:javascript
复制
<h:form id="form">

    <h:panelGroup id="container-panel-1">
        <h:panelGroup id="panel-1" rendered="#{sampleController.showPanel1()}">
            <p:commandButton id="btn-1" value="btn1"
               actionListener="#{sampleController.button1}" 
               update=":form:container-panel-1, :form:container-panel-2" />
        </h:panelGroup>
    </h:panelGroup>

    <h:panelGroup id="container-panel-2">
        <h:panelGroup id="panel-2" rendered="#{sampleController.showPanel2()}">
            <p:commandButton id="btn-2" value="btn2"
               actionListener="#{sampleController.button2}" 
               update=":form:container-panel-1, :form:container-panel-2" />
        </h:panelGroup>
    </h:panelGroup>
</h:form>

豆子:

代码语言:javascript
复制
import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class SampleController implements Serializable {

    private boolean showPanel;

    public void button1() {
        showPanel = false;
    }

    public void button2() {
        showPanel = true;
    }

    public boolean showPanel1(){
        return showPanel;
    }

    public boolean showPanel2(){
        return ! showPanel;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29540768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档