2014-09-11 51 views
1

我有一個xpages,我有一個重複控制,我添加了一個按鈕來增加重複次數。 在重複中,我有一個inputText和一個ComputedField。我想獲取每個inputText的ID並對它做些什麼,或許添加它們。我給重複添加了一個索引,我的inputText的標籤是:input $(index)。我想訪問getComponent(「輸入」+索引),但它說:getComponent爲null。爲什麼?Xpages重複控制獲取inputText的ID

什麼是inputText ID?

P.S.這是代碼:

<xp:this.beforePageLoad><![CDATA[#{javascript:sessionScope.dynaField=parseInt("1")}]]></xp:this.beforePageLoad> 

    <xp:div style="text-align:center"> 
     <xp:inputText id="number" defaultValue="100"> 
      <xp:this.converter> 
       <xp:convertNumber type="number" integerOnly="true"></xp:convertNumber> 
      </xp:this.converter> 
     </xp:inputText></xp:div> 
    <xp:panel id="Panel_All" style="text-align:center"> 


     <xp:repeat id="repeat1" var="testCollection" indexVar="index" 
      value="#{javascript:parseInt(sessionScope.dynaField)}" rows="120" 
      style="border:1pt" repeatControls="false" first="0"> 
      <xp:inputText id="input${index}"> 

       <xp:eventHandler event="onchange" submit="true" 
        refreshMode="partial" refreshId="repeat1"> 
       </xp:eventHandler> 
      </xp:inputText> 


      <xp:text escape="true" id="comp"> 

       <xp:this.value><![CDATA[#{javascript:var repeatValue = getComponent("repeat1").getValue(); 
var number1 = getComponent("number").getValue(); 
var number2 = getComponent("input").getValue(); 

return number1-number2; 
}]]></xp:this.value> 
      </xp:text> 

      <xp:br></xp:br></xp:repeat> 



     <xp:br></xp:br> 


     <xp:br></xp:br> 
     <xp:table style="width:100%"> 

      <xp:tr> 
       <xp:td colspan="2" style="text-align:center"> 
        <xp:button value="Add Document" id="button1"> 
         <xp:eventHandler event="onclick" submit="true" 
          refreshMode="partial" refreshId="Panel_All"> 
          <xp:this.action><![CDATA[#{javascript:sessionScope.dynaField=parseInt(sessionScope.dynaField)+1 
getComponent("repeat1").setValue(parseInt(sessionScope.dynaField));}]]></xp:this.action> 
         </xp:eventHandler> 
        </xp:button> 

       </xp:td> 

      </xp:tr> 
     </xp:table> 
     </xp:panel> 

我有第一個inputText與id號,其中是初始數字。然後重複有一個輸入文本和一個計算字段,顯示重複中的「數字」,第一個inputText和inputText之間的差異。 然後,如果用戶單擊按鈕時,重複顯示一個新的inputText,並且與該字段相關的計算字段的結果應爲:(number)-1st inputText in the repeat - 2nd inputText in the field。

感謝,

+0

您能告訴我們業務需求是什麼,而不是技術方法?我在你評論David的回答時看到了技術方法,但我不明白你爲什麼要加減。 – 2014-09-11 14:20:48

+0

哦,我們能看到實際的代碼嗎? – 2014-09-11 14:41:07

+0

@DavidNavarre我更新了我的問題。謝謝 – 2014-09-12 07:44:52

回答

0

我不知道這是最好的辦法。我從來沒有像這樣從重複控制中獲取數據。我會盡快回到磁盤並以這種方式進行計算。

假設您希望這些總數超出重複控制範圍,我將擁有一個SSJS或Java函數來獲取總計並以此方式呈現。其實你可以在重複控制中做到這一點。您可以使用多米諾骨牌對象模型來收集您的文檔...在那時做任何計算並將結果存儲在viewScope中,然後返回到所選文檔的重複控制viewEntryCollection ...

+0

我想使用重複在inputText中添加值,然後在同一個重複中,我有一個computedField,我希望減去每個輸入字段的值。例如,當我添加一個值爲200的inputText時,我有一個數字1000,結果將是800,然後當我添加另一個具有100值的輸入,第二個計算的字段具有值700時,依此類推。 – 2014-09-11 11:32:58