我的Notes文档中有几个字段
FieldA_1 FieldA_2 FieldA_3 FieldA_4
FieldB_1 FieldB_2 FieldB_3 FieldB_4
在复合控件上,我有2个编辑框FieldA FieldB
我有一个compositeData.ATM_NUM定义了一个自定义控件,它是一个值为1,2,3,4的下拉列表.
如何使用可用的复合数据将控件上的编辑框绑定到相应的文档字段?
例如,我想做类似的事情:"FieldA _"+ compositeData.ATM_NUM.
我在这个帖子中尝试了javascript解决方案:
但它似乎没有用.
Per*_*ten 11
尝试以下作为例如字段A的值:
<xp:inputText value="#{document['FieldA'+compositeData.ATM_NUM]}" />
Run Code Online (Sandbox Code Playgroud)
您还可以扩展自定义控件的属性以包括整个字段名称(从而将"FieldA_1"传输到自定义控件).然后你应该能够做到以下几点:
<xp:inputText value="#{document[compositeData.fieldName]}" />
Run Code Online (Sandbox Code Playgroud)
该问题与compositeData准备好供您使用的时间有关.在开始时,当您的自定义控件准备就绪时,它会评估为"0".
试试这个:
<xp:inputText id="inputText1"
value="${javascript:'#{document1.SomeField'+compositeData.SomeParam+'}'}">
</xp:inputText>
Run Code Online (Sandbox Code Playgroud)
在那里使用"$"符号很重要.这将创建一个绑定到SomeField1,SomeField2等等取决于SomeParam.
自定义控件的数据绑定示例如下:
创建自定义控件,添加2个自定义属性:BindTo(String),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>
Run Code Online (Sandbox Code Playgroud)
这种方法(使用${javascript:"#{"+compositeData.BindTo+"}"})的优点是你可以将该控件绑定到任何东西:文档,范围变量,bean等.
| 归档时间: |
|
| 查看次数: |
4135 次 |
| 最近记录: |