gpt4 book ai didi

salesforce - 无法将组件属性与 Controller 绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 00:32:04 25 4
gpt4 key购买 nike

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

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

Controller :

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

零件 :
<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>

视觉力量页面:
 <apex:page >
<c:AdditionalQuestionComponent CRFType="STE" />
</apex:page>

谢谢,
维韦克

最佳答案

我相信这里的问题是您期望成员变量在构造函数中具有值 - 问题是正在构造类的实例!它尚不存在,因此无法预先为非静态成员变量赋予值。

不要在构造函数中进行查询,而是为 lstAddQue 指定自己的 getter并在需要数据时在其中进行查询。当然,您可能希望缓存该值,以便查询不会每次都运行,但从看起来与这里无关的事物来看。

关于salesforce - 无法将组件属性与 Controller 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com