1

现在看来,任何与<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>
4

1 回答 1

1

<apex:selectCheckboxes>保存多个值,因此它的值需要是一个字符串数组:

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

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

this.fGrade = new List<String>();
于 2013-05-28T15:18:22.530 回答