3

Primefaces データテーブルでの inputText 要素の使用について質問があります。

Xhtmlは以下のようなものです

<h:form >
                 <h:panelGrid columns="2">
                    <p:commandButton action="#{offerController.addNewOfferRow}" update="panel1" id="iconOnly1"  
           icon="ui-icon-circle-plus" value="Yeni Satır" title="Icon Add"  style="width:220px;" /> 


                 </h:panelGrid>
                <p:dataTable id="panel1" var="offer" value="#{offerController.offerIds}"  style="align: center;">
                    <p:column id="modelHeader"  style=" margin-left: auto; margin-right: auto; width:70%;" >
                        <f:facet name="header">
                            Eklenecek Offerlar
                        </f:facet>

                        <p:inputText id="addOfferId" value="#{offer}"   style=" margin-left: auto; margin-right: auto; width:70%;"  />

                    </p:column>


                </p:dataTable>

そして、私のJava Beanは以下のようなものです:

@ManagedBean
@ViewScoped


public class OfferController implements Serializable{

    /**
     * 
     */

    private static final long serialVersionUID = -1552493989687233258L;
    private static final int defaultNumberOfRows = 6;
    private List<String> offerIds = new LinkedList<String>();


    public OfferController() {
         super();
    for(int i=0;i<defaultNumberOfRows;i++){
        offerIds.add("");
         }

    }

    public void addOffers(){
         // do some op.
    }

    public void addNewOfferRow(){
         offerIds.add("");
    }

    public getOfferIds(){
         return offerIds;
    }

    public setOfferIds(List<String> offerIds){
          this.offerIds = offerIds;
    }


}

上記のコードを使用する場合、datatable にある inputText 要素に文字列項目のリストを表示したい。

また、addNewOfferRow 操作により、リストに新しい要素が追加され、データテーブルがクライアント側で更新されます。

ただし、フォームを送信した後、すべての inputText 要素はユーザーが入力した値を保存しません。

これらの datatable end inputText 要素を使用して動的行フォームを作成するにはどうすればよいですか。

ありがとう。

4

1 に答える 1

0

入力テキスト要素がリスト項目に値を設定できない文字列 (不変型) のリストを使用しています。

リスト項目として文字列を含むラッパー クラスを使用します。

<p:dataTable var="item" value="#{listBean.list}">
     <p:column>
         <p:inputText value="#{item.name}" />
     </p:column>
</p:dataTable>
于 2012-08-22T10:01:20.120 に答える