0

我正在使用 primefaces 来实现我的网站,但我遇到了一个问题。
我使用selectOneButton了组件,根据选择的按钮,我想显示一个特定的数据表。因此,当我单击 button1 时,我想显示 table1,而当我单击 button2 时,我想显示 table2。

这是我正在使用的代码:

<p:selectOneButton 
    value="#{myBean.dataTableType}"
    valueChangeListener="#{myBean.dataTableTypeChange}">
    <f:selectItems value="#{myBean.dataTableTypes}"
        var="type"
        itemLabel="#{msg['datatable.type.'.concat(type)]}"
        itemValue="#{type}" />
    <p:ajax update="table1 table2"/>
</p:selectOneButton>

使用此代码,我无法达到我想要的:(

4

2 回答 2

1

我认为您可以很好地查看以下示例,并在 bean 中调用的侦听器中为您的表保留一个渲染标志。

https://stackoverflow.com/a/8409360/3403415

希望能帮助到你!!

于 2017-07-31T15:38:15.447 回答
0

您应该使用 value 为 ajax 声明一个属性进程@this。该属性表示selectOneButton将值设置为 bean 何时会发生某些事件selectOneButtton。您将获得数据表类型的实际值。

现在你没有了。如果你有一个条件,例如:

<ui:fragment rendered="#{myBean.dataTableType eq FirstTable}">
    <p:datatable id="first_table">
        ...
    </p:datatable>
</ui:framgent>

条件返回假..

于 2017-07-31T07:12:41.213 回答