使用Visualforce显示自定义对象和字段

时间:2012-11-05 03:25:30

标签: apex-code visualforce

我有一个名为Conference的自定义对象。我需要创建一个简单的visualforce页面,显示会议的所有记录,包括每个会议的以下详细信息:姓名,城市,州,开始日期,结束日期,预期参加者和实际登记。我使用标准的Salesforce.com管理点击并构建了它,它们都在我通过点击创建的报告中完美显示。

使用以下代码我收到此错误: 错误:未知属性'Conference__cStandardController.conference'

<apex:page standardStylesheets="false" showHeader="false" sidebar="false"    
 standardController="Conference__c" recordsetVar="conf">

   <apex:stylesheet value="{!URLFOR($Resource.styles, 'styles.css')}"/>
   <h1>Conference Details</h1> 

   <apex:form>
      <apex:dataTable value="{!Conference__c}" var="confItem" rowClasses="odd,even"> 

         <apex:column headerValue="Conference Name">
             <apex:outputField value="{!confItem.Name}"/>
         </apex:column> 

         <apex:column headerValue="City">
             <apex:outputText value="{!confItem.City__c}"/>
         </apex:column>

         <apex:column headerValue="State">
             <apex:outputText value="{!confItem.Location_State__c}"/>
         </apex:column>

         <apex:column headerValue="Start Date">
             <apex:outputText value="{!conference.Start_Date__c}"/>
         </apex:column>

         <apex:column headerValue="End Date">
             <apex:outputText value="{!conference.End_Date__c}"/>
         </apex:column>

         <apex:column headerValue="Technologies">
             <apex:outputText value="{!conference.Technologies__c}"/>
         </apex:column>  

         <apex:column headerValue="Expected">
             <apex:outputText value="{!conference.Number_of_Attendees_Expected__c}"/>
         </apex:column> 

         <apex:column headerValue="Currently Enrolled">
             <apex:outputText value="{!conference.Enrolled_Attendees__c}"/>
         </apex:column>  

     </apex:dataTable>
  </apex:form>

2 个答案:

答案 0 :(得分:1)

您已将sObject Conference__c提交给conf。 因此,在您的dataTable中,您应该编写如下代码:

<apex:dataTable value="{!conf}" var="confItem" rowClasses="odd,even"> 
<apex:column headerValue="Conference Name">
         <apex:outputField value="{!confItem.Name}"/>
     </apex:column>
and so on

答案 1 :(得分:0)

<apex:enhancedList>可能是您最好的朋友。

但是如果你想保留你到目前为止的代码,你需要在你选择作为“recordsetvar”属性的变量名称上循环(意味着在dataTable / pageBlockTable / repeat中引用它)。查看this link了解详情。

这样的事情应该有效:

<apex:page standardStylesheets="false" showHeader="false" sidebar="false"    
standardController="Conference__c" recordSetVar="conferences">
    <apex:pageBlock>
        <apex:pageBlockTable value="{!conferences}" var="c">
            <apex:column value="{!c.Name}" />
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:page>