动态添加/删除重复控件中的字段并将其保存到文档中

时间:2012-11-29 17:41:07

标签: xpages

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

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

<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]}" />

然后我创建了一个Add按钮,我将viewScope.rowCount递增1并部分刷新重复控件。这会添加一行输入文本。类似地,我在点击时创建了一个删除按钮,将viewScope.rowCount递减1并部分刷新重复控件。这将删除最后添加的输入文本。

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

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

1 个答案:

答案 0 :(得分:1)

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