在添加/删除新行时保留文本框中的数据

时间:2013-09-18 10:53:35

标签: jsf-2

我想在添加/删除其他行时保留文本框中的数据。我正在使用嵌套数据表。如果我单击“删除”按钮,则刷新整个数据表,因此用户丢失了部分填充的表单数据。

        <h:commandButton id="addBtn"  value="Add Value">
            <f:ajax listener="#{relationBean.addValue}" 
                render="datatableIterator" event="click" />
        </h:commandButton>
        <h:dataTable id="datatableIterator"
            value="#{relationBean.datatables}" var="datatable">
            <h:column>
                <h:dataTable id="relationIterator"  
                    value="#{datatable}" var="item">
            <h:column>
                <f:facet name="header"> Relation Type Name</f:facet>
                <h:outputText value="#{item.relationType}" />
            </h:column>
            <h:column>
                <f:facet name="header">language</f:facet>
                <h:outputText value="#{item.languageName}" />
            </h:column>
            <h:column>
                <f:facet name="header"> Value</f:facet>
                <h:inputText value="#{item.relationForm}" />
            </h:column>
            </h:dataTable>
    </h:column>
    <h:column>
        <p:commandLink action="#{relationBean.deleteDataTable}" 
            immediate="true" update="@form" process="@this" >
            <h:graphicImage value="../images/delete.png"  />
            <f:setPropertyActionListener 
                target="#{relationBean.deleteId}" value="#{datatable}" />
                 </p:commandLink>
    </h:column>
</h:dataTable>

1 个答案:

答案 0 :(得分:0)

我得到了决议。 它只有一行更改。我正在做的是在填充表单之前添加数据,所以每当我点击删除按钮它就会清除表单。所以我在填充表格之后添加了数据。

getDatatables().add(getRelationDTOList());

之前

datatables.add(getRelationDTOList());

并在xhtml添加按钮中包含execute =“@ form”。