我正在使用数据表,每行都有一个selectonemenu作为列。
我的页面上有一个按钮。单击它时,我想检查数据表的每一行,找到selectone菜单的选定项目,并根据所选值创建一些数据库内容。
如果没有使用编程方式或我的代码的任何解决方案,是否有更简单的方法?
这是我的代码:
这里我只是试图找到一个输出文本,但它没有用。
private DataTable myTable//primefaces datatable;
for ( UIComponent row : myTable.getChildren()) {
HtmlOutputText a= (HtmlOutputText) row.findComponent("bname");
System.out.println("click"+a.getValue());
}
答案 0 :(得分:0)
只需将选择的选定值绑定到地图上。
<p:dataTable .... rowIndexVar="index">
... somwhere in column
<p:selectOneMenu value="#{backingBean.values[index]}" >
...
答案 1 :(得分:0)
将datatable的value属性绑定到POJO列表。表列对应于POJO成员。
public class MyPOJO{
public String column1;
public String column2;
public String column3;
public String column4;
//setters and getters here ....
}
@ManagedBean(name="beanDetails")
@ViewScoped
public class MyBean {
public List<MyPOJO> list_POJO;
private HashMap<String,String> fieldValues;
//setters and getters here ....
}
<p:dataTable id="myTable" value="#{beanDetails.list_POJO}" var="dataItem">
<p:column>
<f:facet name="header">
<h:outputLabel value="Column 1" />
</f:facet>
<p:cellEditor>
<f:facet name="output">
<h:outputLabel value="#{dataItem.column1}" />
</f:facet>
<f:facet name="input">
<p:selectOneMenu id="relevance" value="#{dataItem.column1}">
<f:selectItems value="#{beanDetails.fieldValues}"/>
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
....
....
</p:dataTable>
<p:commandButton value="Submit" actionListener="#{beanDetails.submitDetails}"/>
在submitDetails中,您可以使用list_POJO遍历数据表记录。