我正在使用一个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>
下拉列表附近的标签不再显示..
有没有办法可以完成我的需要?
答案 0 :(得分: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>
答案 1 :(得分:0)
最好的方法是为此对象的此字段添加validation rule。
答案 2 :(得分:0)
使用raym0nds方法,这是它查找自定义控制器变量的方式,在我的情况下使用对象的自定义字段中的名称。:
//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
,id
和required
属性。 apex:outputLabel
现在具有for
属性。 for/id
只是点击标签会将光标放到右侧字段中。 required
启用表单验证,因为其余部分只是化妆。 label
为该验证错误添加了一个好的字段名称 - 否则会在那里显示内部字段ID。
如果您有一个批量编辑表,其中所有记录共享某些值(例如为同一公司添加多个潜在客户),整个方法很有意思