我的Notes文档中有几个字段
FieldA_1 FieldA_2 FieldA_3 FieldA_4
FieldB_1 FieldB_2 FieldB_3 FieldB_4
在复合控件上,我有两个编辑框FieldA FieldB
我有一个定义了自定义控件的compositeData.ATM_NUM,它是一个值为1,2,3,4的下拉列表。
如何使用可用的复合数据将控件上的编辑框绑定到其相应的文档字段?
例如,我想做这样的事情:"FieldA_"+ compositeData.ATM_NUM。
我在这个线程中尝试了javascript解决方案:
Binding an edit box within a custom control to a form field programatically
但它似乎并没有起作用。
发布于 2012-03-29 02:38:59
例如,尝试使用以下as值作为字段A:
<xp:inputText value="#{document['FieldA'+compositeData.ATM_NUM]}" />您还可以扩展自定义控件的属性,使其包含整个字段名称(从而转移,例如"FieldA_1“添加到自定义控件)。然后,您应该能够执行以下操作:
<xp:inputText value="#{document[compositeData.fieldName]}" />发布于 2012-03-29 04:50:10
该问题与compositeData准备就绪的时间有关。在开始时,当您的自定义控件准备就绪时,它的计算结果为"0“。
试试这个:
<xp:inputText id="inputText1"
value="${javascript:'#{document1.SomeField'+compositeData.SomeParam+'}'}">
</xp:inputText>在这里使用"$“符号很重要。它将根据SomeParam创建到SomeField1、SomeField2等的绑定。
发布于 2013-10-11 10:37:30
自定义控件的数据绑定示例如下:
创建一个自定义控件,添加2个自定义属性: BindTo (字符串),canEdit (布尔值)。通常,您需要根据业务逻辑的状态设置只读字段,而不是根据其余字段处于编辑模式这一事实。
<xp:listBox id="listBox1"
rendered="#{compositeData.canEdit}">
<xp:this.value><![CDATA[${javascript:"#{"+compositeData.BindTo+"}"}]]></xp:this.value>
<xp:selectItem itemLabel="red"></xp:selectItem>
<xp:selectItem itemLabel="blue"></xp:selectItem>
<xp:selectItem itemLabel="green"></xp:selectItem>
</xp:listBox>
<xp:text id="textForListbox"
rendered="#{!compositeData.canEdit}">
<xp:this.value><![CDATA[${javascript:"#{"+compositeData.BindTo+"}"}]]></xp:this.value>
</xp:text>这种方法(使用${javascript:"#{"+compositeData.BindTo+"}"})优点是您可以将控件绑定到任何东西:文档、范围变量、bean等。
https://stackoverflow.com/questions/9913331
复制相似问题