inputCheckBox不会从Apex设置

时间:2012-09-25 08:01:36

标签: checkbox salesforce apex-code

我创建了一个apex:dynamicComponent,它根据存储的数据创建复选框。

复选框的创建如下:

Component.Apex.inputCheckbox chkBox = new Component.Apex.inputCheckbox();
if (myMap.get(myList[i]) == true) 
    chkBox.selected = true;

但是当我尝试显示我的VF页面时,它会显示:

System.VisualforceException: Invalid value for property selected: java.lang.String cannot be cast to java.lang.Boolean 

我尝试用不同的值设置“chkBox.selected”(例如字符串'true')我无法保存我的控制器。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我们不是像上面那样创建一个顶点组件,而是创建像下面这样的复选框组件

public Boolean chkBox{
    get{
        if(myMap.get(myList[i]) == true){
            return true;
        } 
            return false;            
    }
    set;

在Visualforce页面上,我们可以写如下

<apex:outputLabel value="Check Box Label"/>    <apex:inputCheckBox value="{!chkBox}"><apex:actionSupport event="onclick" rerender="TheBlock" status="showCredentialing" />

错误也可能是由于视觉力页面上存在其他一些输出字段错误,因为VF错误没有行号。

我尝试在visualforce页面中实现一个独立的Component.Apex.inputCheckbox。请尝试以下代码

<强> CONTROLLER

            public class testcontroller {
        public Component.Apex.inputCheckbox chkBox { get; set; }
        public Component.Apex.inputCheckbox dyCheckbox; 
        public PageReference chkBox3() {
           this.chkBox = new Component.Apex.inputCheckbox();
           System.debug('Here is Test');
           this.chkBox.value = true;     
           return null; 
           }
        public String chkBox2 { get; set; }
        public testcontroller(){
           this.chkBox2 = 'false';
        }
        public Component.Apex.inputCheckbox getInputCheckbox() {
           Component.Apex.inputCheckbox dyCheckbox = new Component.Apex.inputCheckbox();
           dyCheckbox.value = 'true';
           return dyCheckbox;
           }
        }

VISUALFORCE PAGE

<apex:page controller="testcontroller">
  <!-- Begin Default Content REMOVE THIS -->
  <h1>Congratulations</h1>
  This is your new Page: test 
  <apex:form >
    <apex:outputLabel value="Check Box Label"/>   
     <apex:inputCheckBox value="{!chkBox2}"/>

              <apex:dynamicComponent componentValue="{!InputCheckbox}" />


     <apex:commandButton value="sd" action="{!chkBox3}" title="asdf"/> 
  </apex:form>

  <!-- End Default Content REMOVE THIS -->
</apex:page>