2011-11-08 49 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的是可见的。

相关问题