我想在添加/删除其他行时保留文本框中的数据。我正在使用嵌套数据表。如果我单击“删除”按钮,则刷新整个数据表,因此用户丢失了部分填充的表单数据。
<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>
答案 0 :(得分:0)
我得到了决议。 它只有一行更改。我正在做的是在填充表单之前添加数据,所以每当我点击删除按钮它就会清除表单。所以我在填充表格之后添加了数据。
getDatatables().add(getRelationDTOList());
之前
datatables.add(getRelationDTOList());
并在xhtml添加按钮中包含execute =“@ form”。