【问题标题】:Can I add/remove Primefaces components dynamically?我可以动态添加/删除 Primefaces 组件吗?
【发布时间】:2011-11-08 04:57:25
【问题描述】:

如何动态添加/删除primefaces inputText?

【问题讨论】:

  • 你接受了 Michel 的回答让我很吃惊,我心里有一个完全不同的功能需求。 Michel 的解决方案需要在视图中准备好固定数量的输入,而您似乎希望让用户动态添加/删除未确定的数量。
  • 同意你的观点。因为我是新手,所以我认为它会起作用。但它只有在我们有固定数量的准备好的输入时才会起作用,就像你说的那样。但是我做了一些解决方法,并且准备好它在不使用渲染的情况下工作。
  • 那你应该把它作为一个详细的答案重新发布并接受自己。

标签: jsf-2 primefaces


【解决方案1】:

要添加/删除文本框,请尝试以下 sn-ps。

 <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>

【讨论】:

  • 我正在使用p:dataGrid 来解决类似的问题,但其中的组件具有相同的ID。你有同样的问题吗?使用p:dataTable的原因是什么?提前致谢
  • 我没有这个问题。目前所有值都已发布到列表中。无论如何,我还没有尝试过p:dataGrid
  • 在使用dataTable时,所有的数据都被一个list处理。并且因为更新primeFaces的dataTable组件更容易,这提供了一些动态组件的可能性。
【解决方案2】:

这是简单模式:

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

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

【讨论】:

    最近更新 更多