2012-02-14 44 views
1

我正在使用數據表,並且每行都有一個selectonemenu作爲列。如何以編程方式獲取jsf或primeface數據表的所有行

在我的頁面上有一個按鈕。當它被點擊時,我想檢查每一行數據表,找到selectone菜單的選定項並根據這個選擇的值創建一些數據庫的東西。

有沒有更簡單的方法,而不使用編程方式或任何解決方案,我的代碼?

這裏是我的代碼:

在這裏,我只是試圖找到的outputText,但沒有奏效。

private DataTable myTable//primefaces datatable; 



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

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

     } 

回答

0

只將選定的選定值綁定到地圖。

<p:dataTable .... rowIndexVar="index"> 
    ... somwhere in column 
    <p:selectOneMenu value="#{backingBean.values[index]}" > 
     ... 
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遍歷數據表記錄。

相關問題