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

選択したselectionmenの値をマップにバインドするだけです。

<p:dataTable .... rowIndexVar="index">
   ... somwhere in column
   <p:selectOneMenu value="#{backingBean.values[index]}" >
       ... 
于 2012-02-14T10:46:29.173 に答える
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 に答える