我得到错误的“未知属性'VisualforceArrayList.EHS_Task__c'”时,部署VF页面。以下是页面代码:
<div style="border-bottom: 1px solid gray;border-right: 1px solid gray;padding: 2px 10px;">
<strong class="" >Task:</strong>
<input type="text" name="task" id="task" class="frminput" value = "{!getEHS.EHS_Task__c}"></input>
</div>主计长:
public class ES_EHSReportGeneration {
public Apexpages.Standardcontroller cntrl ;
public PageReference page;
public String id ='' ;
public List<EHS_Pre_Job_Brief__c> getEHS{get;set;}
public ES_EHSReportGeneration(ApexPages.StandardController controller) {
this.cntrl = controller ;
this.page = ApexPages.currentPage();
this.id = page.getParameters().get('id');
}
public ES_EHSReportGeneration(){
getEHS = [Select id, EHS_Task__c from EHS_Pre_Job_Brief__c where id= :id limit 1] ;
}请检查并告知我做错了什么。
发布于 2022-09-26 11:59:30
getEHS{get;set;} --这算成双倍的"get“。
并且您有两个构造函数,这意味着您将有错误(一个构造函数计算出记录id,第二个构造函数运行查询。他们不会一起跑,所以它不会做你想做的事)。
您声明了一个List<EHS_Pre_Job_Brief__c>变量,但是在VF中,您计划将它作为单个记录访问({!getEHS.EHS_Task__c},而不是{!getEHS[0].EHS_Task__c}或其他什么)。
解决这个问题的方法很多,阅读有关控制器扩展、getter的内容。你把自己弄糊涂了,复制粘贴编程什么的。不要太匆忙,找些基本的小径。
<apex:page standardController="EHS_Pre_Job_Brief__c" extensions="ES_EHSReportGeneration">
<strong class="" >Task:</strong>
<input type="text" name="task" id="task" class="frminput" value = "{!jobBrief.EHS_Task__c}"></input>
</apex:page>和
public class ES_EHSReportGeneration {
public jobBrief {get;set;}
public ES_EHSReportGeneration(ApexPages.StandardController controller) {
jobBrief = (EHS_Pre_Job_Brief__c) controller.getRecord();
Id i = controller.getId();
if(i != null){
jobBrief = [SELECT Id, EHS_Task__c FROM EHS_Pre_Job_Brief__c WHERE Id= :i];
}
} https://stackoverflow.com/questions/73853131
复制相似问题