首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将组件属性与控制器绑定

无法将组件属性与控制器绑定
EN

Stack Overflow用户
提问于 2012-07-19 19:12:23
回答 2查看 10.9K关注 0票数 5

我正在尝试开发一个visualforce自定义组件,它从一个视觉力量页面获取一个属性。我需要访问控制器的构造器中的该属性,以便从数据库中获取一些记录,并且需要在组件中显示这些记录。但问题是我没有在Controller中获得属性值。

请参阅下面的代码以清楚地了解该问题。

控制器:

代码语言:javascript
复制
public with sharing class AdditionalQuestionController {
    public String CRFType {get;set;}
    public AdditionalQuestionController () {
        system.debug('CRFType : '+CRFType);
        List<AdditoinalQuestion__c> lstAddQues = [Select AddQues__c from AdditoinalQuestion__c wehre CRFType = :CRFType];
        system.debug('lstAddQue : '+lstAddQue);
    }
}

组件:

代码语言:javascript
复制
<apex:component controller="AdditionalQuestionController" allowDML="true">
    <apex:attribute name="CRFType" description="This is CRF Type."  type="String" required="true" assignTo="{!CRFType}" />
        <apex:repeat value="{!lstAddQue}" var="que">
            {!que}<br />
        </apex:repeat>
</apex:component>

VisualForce页面:

代码语言:javascript
复制
 <apex:page >
    <c:AdditionalQuestionComponent CRFType="STE" />
</apex:page>

谢谢,Vivek

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-19 21:04:54

不幸的是,VF组件中属性上的Setter方法似乎是在构造函数返回之后调用的。下面是控制器的另一种解决方案,它使用getter方法来填充列表(将在设置CRFType成员变量后调用):

代码语言:javascript
复制
public with sharing class AdditionalQuestionController {
    public String CRFType {set;}
    public AdditionalQuestionController () {
        system.debug('CRFType : '+CRFType); // this will be null in the constructor
    }
    public List<AdditoinalQuestion__c> getLstAddQue() {
        system.debug('CRFType : '+CRFType); // this will now be set
        List<AdditoinalQuestion__c> lstAddQues = [Select AddQues__c from AdditoinalQuestion__c wehre CRFType = :CRFType];
        system.debug('lstAddQue : '+lstAddQue);
        return lstAddQue;
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-07-19 21:06:14

我相信这里的问题是你期望成员变量在构造函数中有一个值--但问题是类的实例正在被构造!它还不存在,所以不可能事先给非静态成员变量赋值。

不是在构造函数中执行查询,而是为lstAddQue指定自己的getter,并在需要数据时在其中执行查询。当然,您可能希望缓存值,这样查询就不会每次都运行,而是从这里看起来不相关的东西。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11559619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档