将包含Textfield的固定行放在p:dataTable中

时间:2013-08-05 09:58:29

标签: jsf jsf-2 primefaces

我想使用DataTable执行以下方案:

  • 默认情况下,数据表中只应有一行 一个InputText字段和一个Button。
  • 用户输入名称并点击后 那个按钮,Name应该添加到Data表中。
  • 此过程将重复多次。

1

enter image description here

2

enter image description here

第3

enter image description here

任何想法如何做到这一点?
以前有没有人这样做过? 请提出你的建议。

编辑: 以上图片在Photoshop中更改,而不是我的代码的确切输出。

1 个答案:

答案 0 :(得分:2)

正如persissf所说,你可以使用标题进行输入。

我有你问题的示例代码。

@SessionScoped
@ManagedBean

public class DataBean implements Serializable{

    private static final long serialVersionUID = 1L;
    List<String> data;
    String name;

    public DataBean(){
        data=new ArrayList<String>();
    }
    /**
     * @return the data
     */
    public List<String> getData() {
        return data;
    }

    /**
     * @param data the data to set
     */
    public void setData(List<String> data) {
        this.data = data;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    public void update(){
        data.add(name);
    }


}

查看:

<h:body>
    <h:form prependId="false">

    <p:dataTable value="#{dataBean.data}" var="data" id="datatable">

        <p:column>
            <f:facet name="header">
                <h:outputText value="UserNames:" />
                <h:inputText value="#{dataBean.name}" />
                <p:commandButton value="Submit" action="#{dataBean.update}"
                    update="@form,datatable">
                </p:commandButton>
            </f:facet>

            <h:outputText value="#{data}" />
        </p:column>
    </p:dataTable>

</h:form>

希望这会回答你的问题..