最近在自定义DisForm.aspx页面时 发现 创建时间信息无法进行拆分,人事MM只想要修改时间,去掉创建人,创建时间和修改人。
于是我的重新研究下在SPD里面如何去拆分这个时间。
在详情页面上找到的时间信息是如下控件。(默认的DisForm页面没有,这里我是新建了一个列表显示页面)
<SharePoint:CreatedModifiedInfo Visible="false" ControlMode="Display" runat="server"/>
其实就这个东东。但是在转换成html的时候会变成个table,所以我们要分析下里面有什么东西。
问了下其他人,列表的基本模板可以在C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES
的DefaultTemplates.ascx下找到具体对应的数据绑定,查找 CreatedModifiedInfo 大概在485行左右。
<SharePoint:RenderingTemplate id="CreatedModifiedInfo" runat="server"> <Template> <table cellpadding="0" cellspacing="0"> <tr><td nowrap="nowrap" class="ms-descriptiontext" id="onetidinfoblock1"> <SharePoint:FormAuthorEditorFormattedString UserOnlyFormatText="<%$Resources:wss,form_createdby_user%>" AppOnlyFormatText="<%$Resources:wss,form_createdby_app%>" UserAppFormatText="<%$Resources:wss,form_createdby_user_app%>" IsAuthorField="true" runat="server"> <SharePoint:FormField ControlMode="Display" FieldName="Created" DisableInputFieldLabel="true" runat="server"/> <SharePoint:FormField ControlMode="Display" FieldName="Author" DisableInputFieldLabel="true" runat="server"/> <SharePoint:CreationType runat="server"/> <SharePoint:FormAppInfo ControlMode="Display" FieldName="AppAuthor" runat="server" /> </SharePoint:FormAuthorEditorFormattedString> </td></tr> <tr><td nowrap="nowrap" class="ms-descriptiontext" id="onetidinfoblock2"> <SharePoint:FormAuthorEditorFormattedString UserOnlyFormatText="<%$Resources:wss,form_modifiedby_user%>" AppOnlyFormatText="<%$Resources:wss,form_modifiedby_app%>" UserAppFormatText="<%$Resources:wss,form_modifiedby_user_app%>" IsAuthorField="false" runat="server"> <SharePoint:FormField ControlMode="Display" FieldName="Modified" DisableInputFieldLabel="true" runat="server"/> <SharePoint:FormField ControlMode="Display" FieldName="Editor" DisableInputFieldLabel="true" runat="server"/> <SharePoint:FormAppInfo ControlMode="Display" FieldName="AppEditor" runat="server" /> </SharePoint:FormAuthorEditorFormattedString> </td></tr> </table> </Template> </SharePoint:RenderingTemplate>
这时,可以发现这个空间也是由许多数据绑定而成,例如
<SharePoint:FormField ControlMode="Display" FieldName="Created" DisableInputFieldLabel="true" runat="server"/> <SharePoint:FormField ControlMode="Display" FieldName="Author" DisableInputFieldLabel="true" runat="server"/>
上面的代码是显示创建时间和创建人的。
我们回到原来的详细页面设计下。将
<SharePoint:FormField ControlMode="Display" FieldName="Modified" DisableInputFieldLabel="true" runat="server"/>
复制到需要显示的位置。
<tr> <td width="190px" valign="top" class="ms-formlabel" style="display:none"> <H3 class="ms-standardheader"> <nobr>标题</nobr> </H3> </td> <td width="400px" valign="top" class="ms-formbody" style="font-family:微软雅黑;font-weight:bolder;font-size:20px;text-align:center"> <xsl:value-of select="@Title"/> </td> </tr> <tr> <td colspan="2" width="400px" valign="top" class="ms-formbody" style="font-family:微软雅黑;font-size:12px;text-align:center">
<SharePoint:FormField FieldName="Modified" runat="server" ControlMode="Display" DisableInputFieldLabel="true"/>
</td> </tr> <tr> <td width="190px" valign="top" class="ms-formlabel" style="display:none"> <H3 class="ms-standardheader"> <nobr>Content</nobr> </H3> </td> <td width="400px" valign="top" class="ms-formbody"> <xsl:value-of select="@Content" disable-output-escaping="yes"/> </td> </tr>
具体显示的效果如下
搞定~
收工!
分类:
SharePoint 2013
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理