zoukankan      html  css  js  c++  java
  • 关于DataFormWebPart中CreatedModifiedInfo信息的分开使用

    以下是问题的描述,我先从数据说起.
    数据存储在一个叫pages的自定义列表中,该列表除默认的栏外,另增加了一栏"Abstract",为多行文本,用于存储文章摘要信息.当该列表中录入数据后如图:


    这时,当我们点列表项如"page2"时,会进入该项的 DispForm.aspx页面.如图:

    这个页面不符合客户对页面整体风格和布局的要求.最终客户要的这个显示数据的页面效果如下:

    因此我们需要对这个页面进行修改.在SharePoint Desinger中,我们做了如下操作:

    1.选中原先的ListFormWebPart,并将其所在 WebPartZone的Visible="false",将其藏起来.

    2.然后在上方增加一行,插入一个自定义列表表单(插入->SharePoint控件->自定义列表表单),如图:

    3.插入后,页面变为:

    4.我们可以修改这个DataFormWebPart,或着这个表格,使其符合界面展示的要求.
    对于Title和Abstract部分,我们是可以灵活定制的.如图:

    但是,当做到创建者和创建时间时,我们发现在这里Created, Created By,Modified,Modified By四个内容是合在一个叫CreatedModifiedInfo的控件中的.无法单独拿出一个来做展示.注意到当前数据源中也没有这些字段来供我们拖放.如图:

    我们该如何做,才能让创建时间或创建者按客户预想的效果展示?
    解决办法要从这里寻找:
    D:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\DefaultTemplates.ascx
    打开该文件,查找关键词“CreatedModifiedInfo”,找到如下的内容:

    <SharePoint:RenderingTemplate ID="CreatedModifiedInfo" runat="server">
        
    <Template>
            
    <table cellpadding=0 cellspacing=0>
              
    <tr><td nowrap class="ms-descriptiontext" ID=onetidinfoblock1>
                    
    <SharePoint:FormattedString FormatText="<%$Resources:wss,form_createdby%>" 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:FormattedString>
                
    </td></tr>
                
    <tr><td nowrap class="ms-descriptiontext" ID=onetidinfoblock2>
                    
    <SharePoint:FormattedString FormatText="<%$Resources:wss,form_modifiedby%>" runat="server">
                        
    <SharePoint:FormField ControlMode="Display" FieldName="Modified" DisableInputFieldLabel="true" runat="server"/>
                        
    <SharePoint:FormField ControlMode="Display" FieldName="Editor" DisableInputFieldLabel="true" runat="server"/>
                    
    </SharePoint:FormattedString>
                
    </td></tr>
            
    </table>
        
    </Template>
    </SharePoint:RenderingTemplate>
    看到这里,我想大家已经知道该怎么办了。
    在SharePoint Desinger中,重新定义该控件的模板。
    比如,像这样:
    <SharePoint:CreatedModifiedInfo ControlMode="Display" runat="server">
            
    <CustomTemplate>
                
    <table cellpadding="0" cellspacing="0" border="0">
                
    <tr>
                
    <td>创建时间:&nbsp;</td>
                
    <td><SharePoint:FieldValue FieldName="Created" runat="server" ControlMode="Display" DisableInputFieldLabel="true"/></td>
                
    </tr>
                
    </table>
            
    </CustomTemplate>
        
    </SharePoint:CreatedModifiedInfo>
    最终效果如下

    FieldValue这个控件真是好用啊。其他几个,都可以这么来显示。只要修改FieldName即可。
  • 相关阅读:
    C语言的存储类别和动态内存分配
    C语言中复杂的声明
    C语言中typedef的解释_2
    C语言中类型限定符
    C语言文件I/O和标准I/O函数
    C语言中存储类别、链接与内存管理
    C++中static与const成员
    C++多态、虚函数、纯虚函数、抽象类
    sizeof结构体
    杂类
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/755968.html
Copyright © 2011-2022 走看看