1

我正在使用直接绑定到控制器中的自定义对象字段的 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>

下拉列表附近的标签不再显示..

有什么方法可以完成我需要的吗?

4

3 回答 3

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>
于 2012-11-09T15:26:24.643 回答
0

最好的方法是为这个对象添加这个字段的验证规则

于 2012-11-10T07:41:56.360 回答
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,idrequired属性的类型。现在apex:outputLabel有一个for属性。for/id就是这样单击标签会将光标置于正确的字段中。启用表单验证,因为其余的required只是化妆。为该验证错误添加了label一个好的字段名称 - 否则它将在那里显示内部字段 ID。

如果您有一个所有记录共享某些值的批量编辑表(例如为同一家公司添加多个潜在客户),那么整个方法很有趣

于 2016-09-13T10:43:29.910 回答