0

我创建了一个 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')我无法保存我的控制器。

谢谢你的帮助。

4

1 回答 1

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。请尝试以下代码

控制器

            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;
           }
        }

视觉力量页面

<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>
于 2012-09-25T10:32:15.733 回答