我正在尝试使用该字段修改自定义模板中显示的日期格式。我要展示的是:
本页最后修改日期为1月29日 2010年由Joel Spolsky提供
(用户名链接到他们的个人资料)。
我在http://mindsharpblogs.com/aaron/archive/2008/02/08/4283.aspx找到了一些很好的示例,帮助我设置了自定义模板。我查看了MSDN documentation上的班级成员。但我无法弄清楚如何修改日期格式。
有没有办法将日期格式字符串(例如“ d MMM yyyy ”)传递给FieldValue以用于渲染?
这是我当前的代码,除日期格式为29/01/2010 19:22之外,它不是用户友好的。
<SharePoint:CreatedModifiedInfo ControlMode="Display" runat="server">
<CustomTemplate>
This page was last modified on
<SharePoint:FieldValue FieldName="Modified" runat="server" ControlMode="Display" DisableInputFieldLabel="true"/>
by
<SharePoint:FormField FieldName="Author" runat="server" ControlMode="Display" DisableInputFieldLabel="true" />
</CustomTemplate>
</SharePoint:CreatedModifiedInfo>
答案 0 :(得分:0)
我认为您可以直接调用项目字段值并对其进行格式化。请尝试以下代码并将标记添加到标题。
<%@ Import Namespace="Microsoft.SharePoint" %>
...
<SharePoint:CreatedModifiedInfo ControlMode="Display" runat="server">
<CustomTemplate>
This page was last modified on
<%=SPContext.Current.ListItem["Modified"]==null?"":((DateTime)SPContext.Current.ListItem["Modified"]).ToString("d MMM yyyy")%>
by
<SharePoint:FormField FieldName="Author" runat="server" ControlMode="Display" DisableInputFieldLabel="true" />
</CustomTemplate>
</SharePoint:CreatedModifiedInfo>
答案 1 :(得分:0)
我发现问题略有不同。我不是百分之百满意,但它很简单。这基于我在此阅读的解决方案:http://panvega.wordpress.com/2009/03/16/masterpagepagelayout-format-date-field/
您在“已计算”类型的库上创建自定义列,并根据需要设置日期格式。在我的情况下,这意味着:
=TEXT(Modified,"d MMM yyyy")
然后在页面布局中我只引用此字段并且格式化已经完成:
<SharePointWebControls:CalculatedField ID="CalculatedField" FieldName="Display Date" runat="server" />
它并不像我想要的那样优雅,因为它需要在每个页面库上添加自定义列。但它只需要很少的代码。
我仍然愿意接受更好的解决方案。为了格式化日期而必须编写一个完整的Web控件似乎很奇怪,但似乎这可能是唯一的其他更好的选择。