我有两个网格,一个tabView包含2个选项卡,对于第一个选项卡,我必须显示panelgrid1,对于tab2 = panelgrid2。我已经为两个面板使用了rendered属性,并在tabView中使用了tabchange事件,该侦听器更新了Java中的status属性,但是在xhtml中,仍然显示相同的网格,并且不会更改第二panelgrid。

最佳答案

您需要绝对确保在ajax更新/渲染中引用始终渲染的组件。不可能引用本身有条件渲染的组件以显示/隐藏它。

<p:ajax ... update="foo" />
...
<h:panelGroup id="foo">
    <h:panelGrid ... rendered="#{bean.grid == 1}">
        ...
    </h:panelGrid>
    <h:panelGrid ... rendered="#{bean.grid == 2}">
        ...
    </h:panelGrid>
</h:panelGroup>


也可以看看:


Why do I need to nest a component with rendered="#{some}" in another component when I want to ajax-update it?

关于java - 更改选项卡时渲染面板网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13873872/

10-09 09:47