MasterPage/PageLayout format DateTimeField
Posted by PANVEGA on March 16, 2009
When you are creating a SharePoint MasterPage or a Page Layout and you what to have a specific datetime format like dd.MM.yyyy it’s not possible using just the publishing date field of SharePoint. However you can also create a new aspx page with a cs codebehind class and formating the date field, but it is much more offer to achieve this goal (developement, deployment etc.). See the following links below.
http://sharepointers.blogspot.com/2008/09/publishing-page-layout-datetimefield.html
http://msdn.microsoft.com/en-us/library/bb986729.aspx
Current Situation:
I created a PageLayout with a Custom Content Type DateTime called MyDate field. The field is shown only with this format dd\MM\yyyy. I needed this format dd.MM.yy. Out of the box, you cannot format the date field. The default date asp code behind look like this:
<SharePointWebControls:DateTimeField FieldName=”MyDate” runat=”server” id=”DateTimeField2″ CssClass=”datetimefield” >
</SharePointWebControls:DateTimeField>
Here is the way how to solve this issue in a few steps without VisualStudio:
Add a new calculated field to the content type that you are using on the page layout with the following formula:
=TEXT(DATEFIELD,”DATEFORMAT”)
Caution!!! If you have a updated SharePoint Version you have to replace “,” with “;” like =TEXT(DATEFIELD; “DATEFORMAT”)
Otherwise you receive an error message like this: The formula contains a syntax error or is not supported
In the date format you can put “d.MM.yy” or “dd-MM-yyyy” etc.
On your page layout replace the code above with the following:
<!–Edit Mode–>
<PublishingWebControls:editmodepanel runat=server id=”EditModePanel”>
<SharePointWebControls:datetimefield ID=”DateTimeField” FieldName=”MyDate” runat=”server”>
</SharePointWebControls:DateTimeField>
</PublishingWebControls:EditModePanel>
<!–Published Mode–>
<PublishingWebControls:editmodepanel runat=server id=”EditModePanel2″ PageDisplayMode=”Display”>
<SharePointWebControls:calculatedfield ID=”CalculatedField” FieldName=”PublishedDate” runat=”server” CssClass=”datetimefield”>
</SharePointWebControls:CalculatedField>
</PublishingWebControls:EditModePanel>
I created a new calculated column PublishedDate and added the formula like: =TEXT(“MyDate”,”dd.MM.yy”)
This will show on edit mode the MyDate field and on display mode the calculated PublishedDate field.
You can use this trick on any list to show on your views different date formats.
Note: Edit your PageLayout first before you create any instances. Otherwise you could receive an error message.
More Stuff:
http://blog.ray1.net/2008/04/sharepoint-calculated-fields-use-excel.html
http://pathtosharepoint.wordpress.com/2008/08/14/calculated-columns-the-useless-today-trick
http://office.microsoft.com/en-us/help/HA101215881033.aspx
http://office.microsoft.com/en-us/sharepointtechnology/CH100650061033.aspx
http://www.gothamweb.com/support/manual/wsshelp/html/EgForm.htm
Leave a comment