2011-09-29 63 views
0

我有一個綁定的定義如下:在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
  • 當用戶點擊該按鈕(假設它是一個按鈕),其觸發兩個xforms:setvalue,那些xforms:setvalue運行第一和xforms:bind calculate運行更高版本。
  • 幾乎所有用戶與表單的交互都會導致xforms:bind calculate被重新評估。