在 Visualforce 中将复选框和单选按钮与选择选项一起使用
Using both Checkboxes & Radio buttons with SelectOption in Visualforce
我目前在编译时收到错误消息,无法找到 returns 我的 SelectOption 中的选项 criteriaList()。我的印象是单选按钮和复选框使用相同的技术但显然不是?
我尝试使用与单选按钮相同的语法,它们确实可以独立工作。但出于某种原因,复选框出现了问题。
我在 VFP 上的单选按钮是这样的
<apex:selectRadio value="{!tenlan}" layout="PageDirection" >
<apex:selectOptions value="{!consumerList}"/>
</apex:selectRadio>
我的复选框也是如此
<apex:selectCheckboxes value="{!bbt}" layout="PageDirection">
<apex:selectOptions value="{!criteriaList}"/>
</apex:selectCheckboxes>
至于控制器。我这样处理单选按钮:
public List<SelectOption> getconsumerList(){
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('Tenant', 'Tenant'));
options.add(new SelectOption('Landlord', 'Landlord'));
options.add(new SelectOption('Access', 'Access'));
return options;
}
当然,我为我的复选框尝试了同样的事情。
public List<SelectOption> getcriteraList(){
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('bbt', 'Break Down By Trade'));
return options;
}
阅读此处的 selectCheckBoxes 后
https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_selectCheckboxes.htm
似乎这些框确实可以使用字符串而不是布尔值作为 options.add()。但我不确定为什么编译器不会将 criteriaList 作为可接受的方法。
我可以通过启动两个单独的 selectOption 列表来避免这个问题。
public List<SelectOption>consumerList{get; set;}
public List<SelectOption>criteriaList{get; set;}
然后在构造函数中我添加了我的标准。
consumerList = new List<SelectOption>();
criteriaList = new List<SelectOption>();
consumerList.add(new SelectOption('Tenant', 'Tenant'));
consumerList.add(new SelectOption('Landlord', 'Landlord'));
consumerList.add(new SelectOption('Access', 'Access'));
criteriaList.add(new SelectOption('bbt', 'BreakDownByTrade'));
我有点难过,因为我不太清楚为什么这是必要的,但它似乎确实解决了问题。
我目前在编译时收到错误消息,无法找到 returns 我的 SelectOption 中的选项 criteriaList()。我的印象是单选按钮和复选框使用相同的技术但显然不是?
我尝试使用与单选按钮相同的语法,它们确实可以独立工作。但出于某种原因,复选框出现了问题。
我在 VFP 上的单选按钮是这样的
<apex:selectRadio value="{!tenlan}" layout="PageDirection" >
<apex:selectOptions value="{!consumerList}"/>
</apex:selectRadio>
我的复选框也是如此
<apex:selectCheckboxes value="{!bbt}" layout="PageDirection">
<apex:selectOptions value="{!criteriaList}"/>
</apex:selectCheckboxes>
至于控制器。我这样处理单选按钮:
public List<SelectOption> getconsumerList(){
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('Tenant', 'Tenant'));
options.add(new SelectOption('Landlord', 'Landlord'));
options.add(new SelectOption('Access', 'Access'));
return options;
}
当然,我为我的复选框尝试了同样的事情。
public List<SelectOption> getcriteraList(){
List<SelectOption> options = new List<SelectOption>();
options.add(new SelectOption('bbt', 'Break Down By Trade'));
return options;
}
阅读此处的 selectCheckBoxes 后 https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_compref_selectCheckboxes.htm
似乎这些框确实可以使用字符串而不是布尔值作为 options.add()。但我不确定为什么编译器不会将 criteriaList 作为可接受的方法。
我可以通过启动两个单独的 selectOption 列表来避免这个问题。
public List<SelectOption>consumerList{get; set;}
public List<SelectOption>criteriaList{get; set;}
然后在构造函数中我添加了我的标准。
consumerList = new List<SelectOption>();
criteriaList = new List<SelectOption>();
consumerList.add(new SelectOption('Tenant', 'Tenant'));
consumerList.add(new SelectOption('Landlord', 'Landlord'));
consumerList.add(new SelectOption('Access', 'Access'));
criteriaList.add(new SelectOption('bbt', 'BreakDownByTrade'));
我有点难过,因为我不太清楚为什么这是必要的,但它似乎确实解决了问题。