在Vf页面中使用类列表时的未知属性

时间:2011-10-03 13:24:02

标签: salesforce visualforce

我有一个班级

public with sharing class CAccountRep {
string sageAccountNo {get;set;}
string clientName {get;set;}
string name {get;set;}
integer noofdays {get;set;}
string billableUnits {get;set;}
decimal dailyChargeRate {get;set;}
string nominalCode {get;set;}
string practice {get;set;}
string taxFlag {get;set;}
string ProjectId {get;set;}
string PONumber {get;set;}

public CAccountRep(String CrSageAc,String CrClientN,string CrName,integer Crnoofdays,string crbillableunits,decimal CrDecimalChargeRate,string crNominalCode,string CrPractice, String CrTaxFlag,String CrProjectId, String CrPONumber)
{
    sageAccountNo=CrSageAc;
    clientName=CrClientN;
    name=CrName;
    noofdays=Crnoofdays;
    billableUnits=crbillableunits;
    dailyChargeRate=CrDecimalChargeRate;
    nominalCode=crNominalCode;
    practice=CrPractice;
    taxFlag=CrTaxFlag;
    ProjectId=CrProjectId;
    PONumber=CrPONumber;

}

    }

我创建了这个类的对象并将参数传递给这个类

   public List<CAccountRep> AR { get;set; }

   public list<CAccountRep> getAR()
   {   
    if(AR!= null)
        return AR ;
    else return null;
   }

   Using the follwing code to create the object of the class

     CAccountRep CRep=new CAccountRep(projectList[0].Sage_Account_Number__c,projectList[0].Client_Name__c, Cname,enoOfBillableDays,projectList[0].BillableUnits__c,AssConlist[0].Daily_Charge_Rate_of_Consultant__c,AssConlist[0].Nominal_Code__c,projectList[0].C85_Practice__c,projectList[0].Tax_Flag__c,projectList[0].Project_ID__c,projectList[0].PO_Number__c);

     AR.add(CRep);

在我的VF页面中,我试图显示列表AR的内容。

但是我在保存VF页面时收到错误Unknown Propery CAccountRep.ProjectId。

<table id="tableRep">
   <apex:repeat id="tc" value="{!AR}" var="TCrep">
   <tr>

   <td>{!TCrep.ProjectId}</td>
   </tr>
   </apex:repeat>
   </table>

如果我只给{!TCrep}

,我可以得到这样的输出
CAccountRep:[PONumber=null, ProjectId=C85_JPMC1 _A-0083, billableUnits=null, clientName=001A000000YJFhdIAH, dailyChargeRate=null, name=Change Order 10002011-09-05 to 2011-10-10 : 0 null, nominalCode=null, noofdays=0, practice=Administration, sageAccountNo=null, taxFlag=null]
CAccountRep:[PONumber=null, ProjectId=C85_BBCWW _A-0084, billableUnits=null, clientName=001A000000cwgIlIAI, dailyChargeRate=null, name=Secure Desktop v012011-09-05 to 2011-10-10 : 0 null, nominalCode=null, noofdays=0, practice=null, sageAccountNo=null, taxFlag=null]
CAccountRep:[PONumber=null, ProjectId=C85_JPMC1 _A-0083, billableUnits=null, clientName=001A000000YJFhdIAH, dailyChargeRate=null, name=Change Order 10002011-09-05 to 2011-10-10 : 0 null, nominalCode=null, noofdays=0, practice=Administration, sageAccountNo=null, taxFlag=null]

有关如何正确显示的任何想法?

1 个答案:

答案 0 :(得分:2)

我认为编译器感到困惑,因为你认为它有2个公共getter,即这两行:

public List<CAccountRep> AR { get;} // just removed set; for now

public list<CAccountRep> getAR()

当您在页面中使用以下语法时,将从Visualforce页面调用:

{!AR}

尝试这样做:

public List<CAccountRep> AR { get{
    return AR ; // if AR is null it returns null so the if statement was redundant

}set; }

删除getAR()方法。您还应该将您希望显示的类成员变量标记为公共,例如

public string ProjectId {get;set;}