0
我需要顯示拍賣物品的清單。當用戶點擊每個項目旁邊的「出價」按鈕時,我想讓ajax在此拍賣項目下打開出價表單。所以我打算使用ui:repeat
和f:ajax
(如下所示),但是當我進入頁面時,所有拍賣項目都在其旁邊打開了投標組件。點擊任何按鈕都不會執行任何操作。這是代碼(與投標書格式簡化到只是一個outputText:
)f:ajax在ui裏面:重複
<h:form>
<table border="1">
<ui:repeat var="parcel" varStatus="status" value="#{auctionsViewBean.parcels}">
<tr>
<td><h:commandButton value="Bid" action="nothing">
<f:ajax render="bidView"/>
</h:commandButton></td>
<td>#{status.index + 1}</td>
<td>#{parcel.a}</td>
<td>#{parcel.b}</td>
<td>#{parcel.c}</td>
</tr>
<tr><td><h:outputText id="bidView" value="#{auctionsViewBean.showBidViewForParcel(parcel)}">Some text</h:outputText></td></tr>
</ui:repeat>
</table>
</h:form>
我在做什麼錯?我怎樣才能指定與點擊拍賣項目相關的投標組件?
感謝您的回覆,BalusC。其實我沒有嵌套的形式,我說上面的代碼只是簡化了,因爲我刪除了表中的一些元素。簡而言之,如果我可以使這個代碼在上面工作,我會很好。所以我猜這個問題是:如何讓頁面在第一次呈現時不會出現在「bidView」元素中,並且只有在點擊後纔會出現點擊拍賣? (這是一個總的新手問題,我敢肯定我錯過了一些簡單的東西。) – Herzog
啊對了。你的問題始終是模棱兩可的,你的錯誤嘗試已經使我錯誤地理解你真正需要的東西(基本上,我知道你的情況下''沒有做任何事情 - 這是不真實的)。我更新了答案。 –
BalusC
非常感謝您抽出時間,BalusC。它現在起作用,但只是部分。當我進入頁面時,組件被隱藏起來。當我點擊按鈕時,顯示正確的一個。到現在爲止還挺好。但似乎isShowBidView正在爲循環的每次迭代調用 - 直到我點擊按鈕的行。因此,例如,如果有4行,並且我點擊第三行旁邊的按鈕,則會調用第一行,第二行和第三行的isShowBidView。前兩項正確的錯誤,第三項正確的錯誤。這是怎麼回事? – Herzog