当我更改selectOneButton组件的状态时,无法更新我的组件

问题描述:

我正在使用primefaces来实现我的网站,并且遇到了问题。
我已经使用selectOneButton组件,并根据选择哪个按钮,我想显示特定的数据表。所以当我点击button1时,我想要显示table1和table2,当我点击button2时。
当我更改selectOneButton组件的状态时,无法更新我的组件

这是我使用的代码:

<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> 

有了这个代码,我无法达到我想要的东西:(

你应该声明一个属性的过程与价值阿贾克斯@this。此属性表示为selectOneButton设置值为bean时将发生一些事件为selectOneButtton。并且您将有一个数据表类型的实际值

现在您不需要h就是它。如果你有,例如一个条件:

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

条件返回false ..

+0

谢谢@ HAYMbl4;) –

我觉得可以很好地看看下面的例子,并保持渲染标志你的表在调用该侦听豆。

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

希望它有帮助!

+0

谢谢Siddharth.Singh给你回复。我用@this,它适用于我;) –

+0

太棒了。你可以把这个@这工作给你,你找到了解决方案。 –