我有一个从视图中收集数据的重复控件。在表中显示是视图中的一列。这些条目可以是变量。对于重复控件中的每个条目,我希望有几个用户可编辑的字段(注释和复选框)。由于条目的数量和名称是动态的,我认为动态字段绑定是可行的方法。问题是我已经挣扎了几天而且没有在哪里。
所以在重复中我有一个计算字段来显示列的值。我正在考虑将comments字段的字段名称作为computedfield的值。数据源将是相同的,只是字段名将更改并基于行中的条目。
以前的条目stackoverflow条目有关动态字段绑定所有列表传递自定义属性,我仍然没有理解这些。
如果computedfield1 =“One”的值,那么inputText1 =“document1.One”的数据源/字段名称,如果computedField1 =“Two”则数据源inputText1 =“document1.Two”
这甚至可能吗?
答案 0 :(得分:2)
如果您希望这些是您在页面加载时设置的内容,或者如果您希望它们根据用户输入的数据动态更改,我会感到有点困惑,但我会假设它是前者并给出你是一个例子。
如果我在重复控件中迭代视图,我可能会遇到类似的事情:
<xp:repeat rows="50" var="currRow" value="#{ViewName}" IndexVar="rowNum">
</xp:repeat>
在我的重复内容中,我将引用一个自定义类
<xp:repeat rows="50" var="currRow" value="#{ViewName}" IndexVar="rowNum">
<xc:dynamicRowBinding dataSource="#{currentDocument}">
<xc:this.binding1>
<![CDATA[#{javascript: currRow.getColumnValue("binding1");}]]>
</xc:this.binding1>
</xc:dynamicRowBinding>
</xp:repeat>
这假设您在XPage上绑定事物的文档被声明为currentDocument,并且您的基础视图中有一列根据属性计算当前行的所需字段绑定和该文件的价值。
在自定义控件中,存在以下内容:
通过将dataSource和binding1定义为自定义控件中的属性,它们将作为compositeData提供。
因此,要使用这些组件绑定字段,我们只需在自定义控件中添加以下定义:
<xp:inputText value="#{compositeData.dataSource[compositeData.binding1]}">
</xp:inputText>
我希望这有帮助!