我目前在聯繫人記錄中嵌入了一個Visualforce頁面,該頁面顯示所有與chexckbox有效的活動,指示聯繫人是否爲活動的成員(如果選中,則聯繫人爲成員)。我也有一個命令按鈕來保存更改。使用頂點生成visualforce碼:重複喜歡像這樣:Salesforce/Apex - 保存動態複選框數量
<apex:repeat value="{!campaignWrappers}" var="cm"> <div class="MailingRow"> <apex:outputText styleClass="CampaignLabel" value="{!cm.c.Name}" ></apex:outputText> <apex:inputCheckbox styleClass="CampaignCheck" value="{!cm.selected}" /> </div> </apex:repeat>
我的問題是,什麼是去傳遞複選框值到控制器的最佳方式?理想情況下,我希望僅傳遞已更改的複選框,將已從選中狀態變爲未選中狀態的複選框傳遞給第二個列表,其中包含從未選中狀態變爲已選中狀態的複選框。然後我可以插入和刪除這些列表。
這是一個應該在複選框上使用actionSupport標籤的情況嗎?
<apex:actionSupport event="onChange" action="{!updateChangeList}" />
感謝您的信息eyescream。我有點困惑。因此,在每個複選框上使用actionSupport並不是前進的方向,相反,我會對我的commandbutton執行一個操作,該操作根據上面的示例執行邏輯操作。我需要爲每個複選框設置一個ID,以便我可以在控制器中識別它們嗎?我無法像這樣在Visualforce中設置ID:id = {!cm.c.id},因爲它必須是文字? – Ronnie
ActionSupport不是魔術棒;)這是一個AJAX快捷方式,可以提交整個表單並執行操作。把它當作用戶選擇一個複選框的瞬間點擊一下隱藏的按鈕。關鍵是它會成爲網絡流量。如果你想一個接一個地發送它們 - 當然可以。你可以但不必設置ID。他們會自動設置「id」和「name」。只要不用擔心,假設當方法體輸入時,所有的變量都會被解析等等,隨時可以使用 – eyescream
感謝您的詳細解釋eyescream! – Ronnie