【问题标题】:hide/show the panel using <p:command> and <p:outputpanel>使用 <p:command> 和 <p:outputpanel> 隐藏/显示面板
【发布时间】:2016-05-04 05:58:42
【问题描述】:

我是 jsf 和 primefaces 的新手。我想实现在单击按钮时应该启用两个链接,同时再次单击同一个按钮会禁用两个链接。我创建了一个使用&lt;h:commandButton&gt; 和java bean 来隐藏显示的示例,但不知道&lt;p:commandButton&gt;&lt;p:outputPanel&gt;

我已经实现了,当点击链接时,2 链接将被启用。

问题是再次点击它必须禁用它不起作用

【问题讨论】:

  • 使用render属性
  • 您要禁用或完全删除它们吗?
  • 我希望他们在点击事件上工作以显示和隐藏就像点击它显示和第二次点击它变成隐藏

标签: jsf primefaces


【解决方案1】:

如果我理解你的话:

<h:form id="mainform">
    <p:commandButton value="#{testBean.enabled ? 'Hide' : 'Show'}" action="#{testBean.toggle()}" update="links, @this"/>
    <p:outputPanel id="links">
        <p:link value="link1" href="http://www.stackoverflow.com" rendered="#{testBean.enabled}"/>
        <p:spacer width="10"/>
        <p:link value="link2" href="http://www.stackoverflow.com" rendered="#{testBean.enabled}"/>
    </p:outputPanel>
</h:form>

豆子:

private Boolean enabled = false; // + getter/setter
public void toggle() {
    enabled = !enabled;
}

【讨论】:

  • 嗨,感谢您的回答,但不知何故,我无法运行代码,输出不符合标准。我在 .xhtml 文件中遇到 的问题。我正在粘贴我的文件
  • @ArpitThakkar 您可以拥有 1 个 actionListener 和 1 个动作,尽管它们用于不同的东西 - 请仔细阅读。而且你可以在里面嵌套额外的 f:actionListener,这样你就可以调用你想要的所有方法。您也可以只执行一个操作,然后从该方法调用 100 个其他方法。记得接受你的问题的答案:-)
  • @ArpitThakkar 如果它对你有用,你会接受答案吗?有那么难吗?
  • 对不起,我忘了添加为答案。它非常适合我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-19
  • 2011-03-27
  • 2023-03-03
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多