我正在使用primefaces来实现我的网站,我正面临着一个问题
我使用了<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>
组件,根据选择的按钮,我想显示一个特定的数据表。因此,当我单击button1时,我想显示table1,当我单击button2时,我会显示table2。
这是我正在使用的代码:
let team = [ { name: 'Bob Jones', Info: { Height: '6.4', Weight: 170 }, age: 20 }, { name: 'John Anderson', Info: { Height: '5.4', Weight: 120 }, 'age': 23 }, { name: 'Tim Hamburger', Info: { Height: '6.1', Weight: 180 }, 'age': 25 }, { name: 'Tom Hamburger', Info: { Height: '6.6', Weight: 220 }, age: 30 }, { name: 'Jack Johnson', Info: { Height: '6.0', Weight: 190}, age: 41}, { name: 'Tommy Tubbs', Info: { Height: '6.1', Weight: 180}, age: 50}],
age = team => team.filter(members => members.age >= 20 && members.age <= 25)
.map(members => members.name.split(' ')[0]);
console.log(age(team));//[ 'Bob Jones', 'John Anderson', 'Tim Hamburger' ]
使用此代码,我无法达到我想要的目标:(
答案 0 :(得分:1)
答案 1 :(得分:0)
您应该为值为@this
的ajax声明属性进程。此属性告诉selectOneButton
在selectOneButtton
发生某些事件时将值设置为bean。并且您将获得数据表类型的实际值。
现在你还没有。如果您有条件,例如:
<ui:fragment rendered="#{myBean.dataTableType eq FirstTable}">
<p:datatable id="first_table">
...
</p:datatable>
</ui:framgent>
条件返回false ..