现在看来,任何与<apex:selectCheckboxes>
不会工作的东西(无论版本如何,因为我确实尝试在页面和控制器上将它撞回)。有关完整调试步骤,请参阅博客条目:http: //salesforcegirl.blogspot.hu/2013/05/bug-with.html
当尝试使用重复通过地图填充列表时,它对于<apex:selectCheckboxes>
和也失败了<apex:selectList>
。但是如果你做的很长,你<apex:selectList>
至少可以开始工作,但不是<apex:selectCheckboxes>
(这是我需要的)。
这是代码:
public class sfg_testBugWithActionButton {
public String fGrade {get; set;}
public List<SelectOption> soGrade {get; set;}
public String resultString {get; set;}
public sfg_testBugWithActionButton() {
createfilterMap();
resultString = 'on Load of page';
}
public PageReference preformAction() {
system.debug('Grade: ' + fGrade);//this wont be hit unless you use selectList
resultString = 'button action preformed';
return null;
}
private void createfilterMap() {
soGrade = new List<SelectOption>();
soGrade.add(new SelectOption('A', 'A'));
soGrade.add(new SelectOption('B', 'B'));
soGrade.add(new SelectOption('C', 'C'));
}
}
页:
<apex:page showHeader="true" sidebar="true" controller="sfg_testBugWithActionButton">
<apex:form>
<apex:outputpanel id="mainWrap">
<h2>Grade</h2>
<apex:selectCheckboxes value="{!fGrade}" layout="pageDirection">
<apex:selectOptions value="{!soGrade}" />
</apex:selectCheckboxes>
<apex:commandButton action="{!preformAction}" rerender="renderWrap" value="Submit Action" />
<br />
<apex:outputpanel id="renderWrap">
{!resultString}
</apex:outputpanel>
</apex:outputpanel>
</apex:form>
</apex:page>