2011-11-08 133 views
2

如何動態添加/刪除primefaces inputText?我可以動態地添加/刪除Primefaces組件嗎?

+1

令我感到驚訝的是,您接受了Michel的答案,我在腦海中完全不同的功能要求。 Michel的解決方案需要在視圖中提供一定數量的準備好的輸入,而您似乎希望讓用戶動態添加/刪除未確定的數量。 – 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

這是最簡單的模式:

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

如果object.visibile == true的inputText的是可見的。

相關問題