2012-11-09 60 views
1

我正在使用直接綁定到控制器中的自定義對象字段的inputField。 以下內容將生成帶有標籤的下拉列表。inputField所需的標記與自定義錯誤消息

<apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" /> 

我的問題是,我需要添加所需的標記旁inputField不失標籤或有默認的錯誤封郵件。

當我用

<apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" required="true"/> 

我得到了所需的標記,但我失去了我的自定義錯誤封郵件進行驗證。

當我用

<apex:outputPanel styleClass="requiredInput" layout="block"> 
    <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
    <apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" /> 
    </apex:outputPanel> 

附近的下拉列表中沒有顯示了標籤..

有沒有一種方法,我可以完成我需要什麼?

回答

1

我最終使用了這個。

//this part to add the missing label. 
<apex:outputLabel styleclass="labelCol" value="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}" /> 

<apex:outputPanel styleClass="requiredInput" layout="block"> 
    <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
    <apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" /> 
    </apex:outputPanel> 
0

最好的方法是爲此對象的此字段添加validation rule。使用raym0nds方法

+0

添加一個批量編輯表將不會顯示在附近的現場,一個紅色標誌visualforce頁面。 – raym0nd

+0

我會檢查。但是,甚至應該有一個輸入錯誤消息的字段。 –

0

,這是它的外觀爲定製控制器變量,在我的情況與名從一個對象:

//this part to add the missing label. 
<apex:outputLabel for="myId" styleclass="labelCol" value="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}" /> 

<apex:outputPanel styleClass="requiredInput" layout="block"> 
    <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
    <apex:inputText id="myId" required="true" value="{!myCustomField}" label="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}" /> 
</apex:outputPanel> 

注意apex:inputText型現在有一個自定義字段label,idrequired屬性。 apex:outputLabel現在具有for屬性。 for/id就是這樣,點擊標籤會將光標放到正確的字段中。 required啓用表單驗證,因爲其餘的只是組成。 label爲驗證錯誤添加了一個很好的字段名 - 否則它會在那裏顯示內部字段ID。

整個方法很有趣,如果你有其中的所有記錄共享某些值(例如添加多個潛在客戶在同一家公司)