带顶点的bug:Spring
 13版本中的selectCheckboxes

时间:2013-05-27 19:11:26

标签: checkbox salesforce apex-code visualforce

现在似乎任何<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>

1 个答案:

答案 0 :(得分:1)

<apex:selectCheckboxes>包含多个值,因此其值必须是字符串数组:

public List<String> fGrade {get; set;}

然后你只需要在构造函数中初始化它,问题中的例子就可以了:

this.fGrade = new List<String>();