0

我发现这个讨论描述了如何将输入文本放入重复控件中并无限次重复并将其动态绑定到文档中的字段。

这就是我所做的。我创建了一个这样的重复:

<xp:repeat indexVar="fieldSuffix" value="#{viewScope.rowCount}">
 <xp:div>
  <xc:dynamicInputText dataSource="#{contact}" fieldName="fullName_#{fieldSuffix}" />
 </xp:div>
</xp:repeat>

在自定义控件dynamicInputText中,我编写了这样的输入文本控件:

<inputText value="#{compositeData.dataSource[compositeData.fieldName]}" />

然后我创建了一个添加按钮,在该按钮上增加viewScope.rowCount1 并部分刷新重复控件。这会添加一行新的输入文本。同样,我在单击时创建了一个删除按钮,该按钮减viewScope.rowCount1 并部分刷新重复控件。这将删除最后添加的输入文本。

现在,如果单击添加三次,我会在网页上获得三个输入文本字段。我在每个人中输入信息。然后我单击删除以删除第三个(最后一个)输入文本。现在,当我保存数据源时,所有三个字段(包括我删除的最后一个字段)都保存在文档中。

为什么会这样?如何停止我删除的第三个字段保存在文档中?

4

1 回答 1

1

您只是隐藏了该字段的渲染。绑定后,您的删除按钮必须清除其值或从 DDS 中删除该项目。例如DDS.replaceItemValue( field, "" )或(最好)DDS.removeItem( field )

于 2012-11-29T23:06:18.117 回答