gpt4 book ai didi

jsf-2 - 带有所需单选按钮的 PrimeFaces 数据表

转载 作者:行者123 更新时间:2023-12-01 05:21:25 24 4
gpt4 key购买 nike

我在一个向导选项卡中使用带有 Radiobuttons 的 PrimeFaces DataTable。可以以某种方式设置单选按钮,如 需要 ?

用户在选择带有单选按钮的 DataTable 中的一个选项之前,不应转到下一个向导选项卡。

或者你有什么想法如何解决这个问题?感谢您的回复!

JSP页面

<p:tab id="test" title="Test">
<p:panel header="Term page">
<p:dataTable id="collection" value="#{register.dataList}" var="dl" rowKey="#{dl.c_id}" selection="#{register.selectedTerm}"">
<p:column selectionMode="single" style="width:2%" />
<p:column>
#{dl.c_id}
</p:column>
</p:dataTable>
</p:panel>
</p:tab>

最佳答案

您可以在 flowListener 中检查数据选择的 <p:wizard> 单击下一个/上一个按钮时触发的标记并有条件地添加 FacesMessage :

public String onFlowProcess(FlowEvent event) {
String current = event.getOldStep();
String next = event.getNewStep();
boolean proceed = true;
if(current.equals("first") && next.equals("second") && (selectedData == null)) {
//proceed only when data was selected and user is moving to the next step
FacesMessage facesMessage = new FacesMessage("You need to make a selection in a datatable to proceed!");
FacesContext.getCurrentInstance().addMessage("form:selection", facesMessage);
proceed = false;
}
return proceed ? next : current;
}

下面提供了完整的示例。

风景:
<h:form id="form">
<p:wizard widgetVar="wiz" flowListener="#{q16439053Bean.onFlowProcess}">
<p:tab id="first" title="First">
<p:message for="selection"/>
<p:panel id="selection" header="Term page">
<p:dataTable id="collection" value="#{q16439053Bean.list}" var="data" rowKey="#{data.name}" selection="#{q16439053Bean.selectedData}">
<p:column selectionMode="single" style="width:2%" />
<p:column>
#{data.name}
</p:column>
</p:dataTable>
</p:panel>
</p:tab>
<p:tab id="second" title="Second">
Done!
</p:tab>
</p:wizard>
</h:form>

bean :
@ManagedBean
@ViewScoped
public class Q16439053Bean implements Serializable {

private List<Data> list;
private Data selectedData;

public List<Data> getList() {
return list;
}

public void setList(List<Data> list) {
this.list = list;
}

public Data getSelectedData() {
return selectedData;
}

public void setSelectedData(Data selectedData) {
this.selectedData = selectedData;
}

public class Data {

private String name;
private String value;

public Data() {
}

public Data(String name, String value) {
this.name = name;
this.value = value;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}

public Q16439053Bean() {
list = new ArrayList<Data>();
Data d;
d = new Data("name", "value");
list.add(d);
d = new Data("name1", "value1");
list.add(d);
d = new Data("name2", "value2");
list.add(d);
d = new Data("name3", "value3");
list.add(d);
}

public String onFlowProcess(FlowEvent event) {
String current = event.getOldStep();
String next = event.getNewStep();
boolean proceed = true;
if(current.equals("first") && next.equals("second") && (selectedData == null)) {
FacesMessage facesMessage = new FacesMessage("You need to make a selection in a datatable to proceed!");
FacesContext.getCurrentInstance().addMessage("form:selection", facesMessage);
proceed = false;
}
return proceed ? next : current;
}

}

关于jsf-2 - 带有所需单选按钮的 PrimeFaces 数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com