1

我正在使用数据表,每一行都有一个 selectonemenu 作为列。

我的页面上有一个按钮。单击它时,我想检查数据表的每一行,找到 selectone 菜单的所选项目并根据此所选值制作一些数据库内容。

有没有更简单的方法而不使用编程方式或我的代码的任何解决方案?

这是我的代码:

在这里我只是试图找到一个输出文本,但它没有用。

private DataTable myTable//primefaces datatable;



for ( UIComponent row : myTable.getChildren()) {
            HtmlOutputText  a=  (HtmlOutputText) row.findComponent("bname");

            System.out.println("click"+a.getValue());       

        }
4

2 回答 2

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 遍历数据表记录。

于 2012-02-15T06:06:53.717 回答
0

只需将 selectionmen 的选定值绑定到地图。

<p:dataTable .... rowIndexVar="index">
   ... somwhere in column
   <p:selectOneMenu value="#{backingBean.values[index]}" >
       ... 
于 2012-02-14T10:46:29.173 回答