在Orbeon Xforms中计算的频率

时间:2011-09-29 09:45:14

标签: orbeon xforms

我有一个绑定定义如下:

<xforms:bind nodeset="instance('demo')/pointer"
                        type="xforms:integer"
                        calculate="
                        if($current-page &lt; '2') then '0'
                            else (
                            if($current-page &gt; '2') 
                            then ($max-pages - 1)
                            else .
                            )"/>

对于每个用户点击表单,current-page值都会更改。我想了解上面绑定定义的计算执行的频率是多少?

问题是pointer变量和current-page是相互依赖的,所以如果我先点击某些内容,应立即评估pointer的值,并在下一个指令我必须根据更改的指针值设置current-page值。点击后,代码如下:

<xforms:setvalue ref="$pointer"
                 value="($pointer + 1)"/>
<!-- i am assuming if the current-page is 2,
     it will increment, else the value is set as per calculate -->
<xforms:setvalue ref="$current-page"
                 value="($current-page + 1)"
                 xxforms:if="($pointer = $max-pages)" />

1 个答案:

答案 0 :(得分:1)

  • 当用户点击触发两个xforms:setvalue的按钮(假设它是一个按钮)时,首先运行xforms:setvalue,然后运行xforms:bind calculate
  • 几乎所有用户与表单的互动都会导致xforms:bind calculate被重新评估。