p:selectOneButton默认值

问题描述 投票:0回答:2

我有一个简单的用例p:selectOneButton

我基本上希望选择一个选项= true,但允许用户进行更改。我尝试了仅将值设置为一个而没有更改的不同组合。下面的伪代码:

<p:selectOneButton id="options" value="#{buttonBean.number}">
<f:selectItem default="true" itemLabel="Option 1" itemValue="1" />
<f:selectItem itemLabel="Option 2" itemValue="2" />
<f:selectItem itemLabel="Option 3" itemValue="3" />
</p:selectOneButton>

我尝试使用javascript无济于事,不是我期望它能正常工作,因为我没有在服务器端进行更新...

document.getElementById('options:0').checked = true;

欢呼声

jsf-2 primefaces
2个回答
0
投票

您可以尝试:

<f:selectItem noSelectionOption="true"/>

或者,我会做的是,在number buttonBean方法中初始化@PostConstruct

@PostConstruct
private void postConstruct() {
    number = 1;
}

0
投票

将buttonBean中的number属性设置为“ 1”。 Primefaces将显示与该值对应的项目作为默认值,如果选择其他项目,则将其更改。

Bean:

private String number = "1";

要根据更改来更新视图,您可以另外放置一个侦听器来更新表单:

<h:form id="form-id">
....
<p:selectOneButton id="options" value="#{buttonBean.number}">
<f:selectItem default="true" itemLabel="Option 1" itemValue="1" />
<f:selectItem itemLabel="Option 2" itemValue="2" />
<f:selectItem itemLabel="Option 3" itemValue="3" />
<p:ajax update=":form-id"/>
</p:selectOneButton>

这将允许您使用按钮来触发UI逻辑,例如显示或隐藏字段。

© www.soinside.com 2019 - 2024. All rights reserved.