Problem
The standard apex:inputfield component for a date field generates a link next to the input field, taking a lot of space. The link allows someone to easily enter the current date. However, when you use multiple date fields within a table component, it can be confusing for the user to have these extra links (see Screenshots). This recipe solves this by creating a Visualforce component that uses CSS to remove the link.
Note the extra links next to each and every date field.
Modified Behavior: Using a Visualforce component to remove the current date link
As you can see, this is a much more compact view.
Discussion
This code is dependent on the standard salesforce look and feel - and in particular dependent on it not changing. By examining the standard CSS, we know that the current date link is in a span.dateInput span.dateFormat CSS element. So this may be a little fickle depending on UI changes - but it should be easy to change if the standard UI CSS does ever change.
The standard apex:inputfield component for a date field generates a link next to the input field, taking a lot of space. The link allows someone to easily enter the current date. However, when you use multiple date fields within a table component, it can be confusing for the user to have these extra links (see Screenshots). This recipe solves this by creating a Visualforce component that uses CSS to remove the link.
Screenshots
Default Behavior: Current date link is renderedNote the extra links next to each and every date field.
Modified Behavior: Using a Visualforce component to remove the current date link
As you can see, this is a much more compact view.
Visualforce Component Code
Here's the code for the Visualforce component. It wraps the component body in an HTML div tag, and adds styling to hide a part of that wrapped component. <apex:component access="global">
<style>
div.hideCurrDate span.dateInput span.dateFormat{
display:none;
}
</style>
<div class="hideCurrDate">
<apex:componentBody />
</div>
</apex:component>
How to use the component
Here's a simple Visualforce page to demonstrate component usage: <apex:page standardController="Opportunity">
<apex:form>
<apex:pageBlock>
<apex:pageBlockSection>
<c:noDateLink>
<apex:inputField value="{!Opportunity.CloseDate}"/>
<c:noDateLink>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Discussion
This code is dependent on the standard salesforce look and feel - and in particular dependent on it not changing. By examining the standard CSS, we know that the current date link is in a span.dateInput span.dateFormat CSS element. So this may be a little fickle depending on UI changes - but it should be easy to change if the standard UI CSS does ever change.
Enjoy.....!!
9712F213BB
ReplyDeleteTakipçi Satın Al
M3u Listesi
Online Oyunlar
Happn Promosyon Kodu
Titan War Hediye Kodu