修改SharePoint中“上次修改”的日期格式:创建修改后的信息

时间:2010-01-29 20:37:59

标签: c# sharepoint

我正在尝试使用该字段修改自定义模板中显示的日期格式。我要展示的是:

  

本页最后修改日期为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>

2 个答案:

答案 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控件似乎很奇怪,但似乎这可能是唯一的其他更好的选择。