2011-11-08 17 views
2

primefacesのinputTextを動的に追加/削除できますか?Primefacesコンポーネントを動的に追加/削除できますか?

<h:inputText rendered="#{object.visibile}" /> 

のinputTextが表示されているobject.visibile == true場合:

+1

私はミッシェルの答えを受け入れることに驚きました。私は全く異なる機能要件を念頭に置いていました。ミッシェルのソリューションでは、一定の量の準備入力が必要になりますが、ユーザーは不確定な量を動的に追加/削除することができます。 – BalusC

+0

あなたと同意します。私はこれを初めて知ったので、うまくいくと思いました。しかし、あなたが言ったように、一定量の準備入力がある場合にのみ機能します。しかし、私はいくつかの回避策を講じ、レンダリングを使わずに作業を準備しました。 – NaaN

+1

それからあなたはそれを詳細として回答として再投稿し、自分自身を受け入れるべきです。 – BalusC

答えて

2

テキストボックスを追加/削除するには、次のスニペットを試してください。

<h:panelGrid columns="1" cellpadding="10"> 
     <h:commandButton value="+" action="#{contactBean.addPhone}" 
      image="../images/addbtn.png" /> 
     <p:dataTable border="0" value="#{contactBean.phoneNos}" var="p" 
      rowIndexVar="rowIndex" emptyMessage="No phone numbers entered"> 
      <p:column> 
       <h:selectOneMenu id="extraTask1" value="#{p.phoneType}"> 
        <f:selectItem itemLabel="Select" itemValue="" /> 
        <f:selectItem itemLabel="Mobile" itemValue="Mobile" /> 
        <f:selectItem itemLabel="Work" itemValue="Work" /> 
        <f:selectItem itemLabel="Others" itemValue="Others" /> 
       </h:selectOneMenu> 
      </p:column> 
      <p:column> 
       <p:inputText value="#{p.phoneNo}" /> 
      </p:column> 
      <p:column> 
       <h:commandButton value="remove" image="../images/button_remove.gif" 
        actionListener="#{contactBean.removePhone}"> 
        <f:param name="columnToRemove" value="#{rowIndex}" /> 
       </h:commandButton> 
      </p:column> 
     </p:dataTable> 


    </h:panelGrid> 
+0

私は 'p:dataGrid'を使って同様の問題を解決していますが、内部のコンポーネントのIDは同じです。同じ問題がありましたか? 'p:dataTable'を使う理由は何ですか?事前に感謝 – nikagra

+0

私はその問題はありませんでした。現在、すべての値がリストに投稿されます。私は 'p:dataGrid'を試していません。 – NaaN

+0

dataTableを使用すると、すべてのデータがリストによって処理されます。また、primeFacesのdataTableコンポーネントを更新する方が簡単であるため、動的コンポーネントの可能性があります。 – bilelovitch

-1

これは簡単なモードです。