表单生成器重复索引

时间:2013-06-10 09:12:08

标签: repeat orbeon

我最近创建了一个带有重复的表单生成器表单来显示数据列表。重复工作正常。我的问题是我需要获取重复内部数据的索引,以便我可以使用它从表中获取另一组数据。

这是我的

<fr:grid columns="2" repeat="true" ref="instance('fr-form-data')/name" id="data-repeat" origin="instance('fr-form-data-template')">
    <xh:tr>
        <xh:td>
            <xf:output id="name-control" ref="person_name">
                <xf:label>Name :</xf:label>
            </xf:output>
        </xh:td>
        <xh:td>
            <xf:trigger>
                <xf:label>Get</xf:label>
                <xf:action ev:event="DOMActivate">
                    <xf:setvalue ref="instance('fr-param-instance')/person/mni" value="am_mni"/>
                    <xf:send submission="get-invl"/>
                </xf:action>
            </xf:trigger>
        </xh:td>
    </xh:tr>
</fr:grid>  

我需要把数据放到这里:

<xf:setvalue ref="instance('fr-param-instance')/person/mni" value="am_mni"/>

由于

1 个答案:

答案 0 :(得分:1)

如果重复内部有一个元素am_mni,与person_name处于同一级别,则xf:setvalue可能如下所示:

<xf:setvalue ref="instance('fr-param-instance')/person/mni"
             value="context()/am_mni"/>

context()指的是xf:setvalue运行的上下文,它将是当前的重复迭代,因为它在重复内部。如果你只是写value="am_mni",那么这将相对于ref进行评估,从而返回instance('fr-param-instance')/person/mni/am_mni,在你的情况下很可能是一个空序列。