我创建了一个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')我无法保存我的控制器。
感谢您的帮助。
答案 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>