现在似乎任何<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>
答案 0 :(得分:1)
<apex:selectCheckboxes>
包含多个值,因此其值必须是字符串数组:
public List<String> fGrade {get; set;}
然后你只需要在构造函数中初始化它,问题中的例子就可以了:
this.fGrade = new List<String>();