0

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

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

1 回答 1

0

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

getDatatables().add(getRelationDTOList());

之前

datatables.add(getRelationDTOList());

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

于 2013-09-18T11:27:22.467 回答