2017-10-06 80 views
0

我有發現的名稱和不同類型的從選定的主要產品組產品圖片的第一重複控制。 在這個第一次重複控制中,我有另一個重複,可以找到第一次重複的每種產品類型的每一篇文章,庫存和說明。在這第二個重複中,我有一個按鈕來訂購特定的文章。 奇怪的是在按鈕的標籤中我可以放置文章編號,但是在onclick事件中,我無法獲得正確的文章編號。 來自第一次重複的數據來自多米諾服務器,並放入一個視域數組中。第二個重複控件get從iseries服務器獲取數據,並將其放入viewcope數組中,以便將eveything放入表中。 代碼:按鈕下的其他重複無法獲得數據行

`<xp:repeat id="repeat3" rows="30" value="#{viewScope.lijst}" 
      var="hoofdlijn" indexVar="index1"> 
      <xp:text escape="true" id="produktnaam"> 
      <xp:this.value><![CDATA[#{javascript:hoofdlijn[0];}]]></xp:this.value> 
      </xp:text> 
      <xp:this.value><![CDATA[#{javascript:hoofdlijn[1];}]]></xp:this.value> 
      </xp:text> 

` 然後我有越來越它是從iSeries的用於給定行的數據的計算字段,並把的它的數據到另一個viewscope數組:「producten1」 然後是第二個重複,以顯示此視圖範圍的所有行:

<xp:repeat id="repeat5" rows="30" 
        value="#{viewScope.producten1}" var="dezelijn2"> 
    <xp:text escape="true" id="computedField42"> 
     <xp:this.value><![CDATA[#{javascript:dezelijn4[4];}]]></xp:this.value><!-- this works fine --> 
    </xp:text><xp:button id="button3" styleClass="btn btn-xs btn-primary"> 

     <xp:this.value><![CDATA[#{javascript:"Bestel "+dezelijn4[0]}]]><!-- this gives the correct value for dezelijn4 --> 
     </xp:this.value> 

     <xp:eventHandler event="onclick" submit="true" refreshMode="partial" execMode="partial" refreshId="menuPanel"> 
       <xp:this.action> 
        <![CDATA[#{javascript:if 
         (sessionScope.containsKey[("besteld")]){ 
         sessionScope.besteld.push ([dezelijn4[0],"1"]); 
         } 
        else { 
         sessionScope.besteld = new Array(); 
         sessionScope.besteld.push ([dezelijn4[0],"1"]); 
         } 
       }]]></xp:this.action><!-- gives a wrong value for dezelijn4 --> 
     </xp:eventHandler> 
    </xp:button> 
</xp:repeat> 
</xp:repeat> 

正確地顯示按鈕顯示的文章編號(dezelijn4 [0])的標籤。 onclick事件中的文章編號似乎總是最後一個產品類型的最後一個編號。

如何,我可以得到我的onclick事件的正確文章編號?

+0

這是正確的行'(sessionScope.containsKey [( 「besteld」)])'?我不記得以前看過那種格式。您是否可以嘗試存儲任何值,例如一個字符串不在數組中? –

+0

這行只是查看sessionScope.besteld是否存在或包含數據。如果它已經存在,我只需在推送中添加數據。如果它不存在,則創建sessionScope,然後使用推送添加數據。 –

回答

0

在你的代碼,第二區塊中的重複var爲dezelijn2但重複內的代碼指的是dezelijn4。也許這是一個複製/粘貼錯誤,你引用了錯誤的變量。

+0

這確實是一個複製粘貼錯誤。 dezelijn4是正確的var值。我會相應地更改上面的代碼。 –