当前位置: 懒人建站 > MOSS界面定制 >

使用SharePoint Designer定制MOSS/WSS表单页面

关键字: MOSS SharePoint D WSS
方法一、使用SharePoint Designer配合enderingTemplate文件来定制MOSS/WSS表单页面 以通知列表( DispForm.aspx) 为例, 系统默认的通知列表样式如下: 默认样式用于新闻发布的时候确实不符合中国

方法一、使用SharePoint Designer配合enderingTemplate文件来定制MOSS/WSS表单页面

以通知列表(DispForm.aspx)为例,
系统默认的通知列表样式如下:

WSS页面定制系列(2)---定制单个列表的表单页面

默认样式用于新闻发布的时候确实不符合中国人的习惯,下面我们要把它改成如下的样子:

WSS页面定制系列(2)---定制单个列表的表单页面

  第一步--修改表单页面默认模板:用SPD打开要修改的页面(DispForm.aspx),找到ListFormWebPart,修改其TemplateName属性为CodeArt_NoticeTemplate,如下:
------------------------------------------------------------------------------------------
<TemplateName xmlns="http://schemas.microsoft.com/WebPart/v2/ListForm">CodeArt_NoticeTemplate</TemplateName>
------------------------------------------------------------------------------------------
  第二步--编写新模板:将一下的内容保存到12TEMPLATECONTROLTEMPLATESCodeArt_NoticeTemplate.ascx文件中:CodeArt_NoticeTemplate.ascx
------------------------------------------------------------------------------------------
<%@ Control Language="C#" AutoEventWireup="false" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="SharePoint" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
  Namespace="Microsoft.SharePoint.WebControls" %>
<SharePoint:RenderingTemplate ID="CodeArt_NoticeTemplate" runat="server">
  <Template>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td class="FormToolBar">
          <SharePoint:InformationBar ID="InformationBar1" runat="server" />
          <SharePoint:FormToolBar ID="FormToolBar1" runat="server" Visible="false" />
        </td>
      </tr>
    </table>
    <table width="95%" border="0" cellspacing="8" cellpadding="0">
      <tr>
        <td align="center" height="30px" class="title">
          <b>
            <SharePoint:FormField ID="FormField1" runat="server" FieldName="Title" />
          </b>
        </td>
      </tr>
      <tr>
        <td align="right">
          <SharePoint:CreatedModifiedInfo ID="CreatedModifiedInfo1" runat="server" />
        </td>
      </tr>
      <tr>
        <td height="1" align="center" class="seprow">
        </td>
      </tr>
      <tr>
        <td valign="top" class="content">
          <SharePoint:FormField ID="FormField2" runat="server" FieldName="Body" />
        </td>
      </tr>
      <tr>
        <td>
          <table border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td>
                &nbsp;&nbsp;</td>
              <td>
                <table border="0" cellspacing="0" cellpadding="0">
                  <SharePoint:FormComponent ID="FormComponent1" TemplateName="AttachmentRows"
                    runat="server" />
                </table>
                <SharePoint:AttachmentUpload Visible="false" ID="AttachmentUpload1" runat="server" />
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td>
        </td>
      </tr>
      <tr>
        <td align="center">
          <table>
            <tr>
              <td>
                <SharePoint:GoBackButton ID="GoBackButton2" Visible="false"
                  runat="server" />
                <input type="button" value=' 返 回 ' onclick="javascript:CloseWindow();return false;" />
                <!--img src="/_wpresources/DisForm/b_close.gif" onclick="javascript:IsCloseWindow();return false;" width="122" height="25"-->
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td align="center">
          &nbsp;</td>
      </tr>
    </table>
    <script language="javascript">
function CloseWindow()
{
  if( window.opener != null )
  {
    self.close();
  }
  else
  {
    history.back(-1);
  }
}
    </script>
  </Template>
</SharePoint:RenderingTemplate>
------------------------------------------------------------------------------------------
  第三步:重启IIS或应用程序池。
  哈哈,你可以刷新页面看效果了。

CodeArt_NoticeTemplate.ascx里面的内容重点关注以下标签:
------------------------------------------------------------------------------------------
<SharePoint:FormField ID="FormField1" runat="server" FieldName="Title" />
------------------------------------------------------------------------------------------
  FormField是一个服务器控件,用它可以呈现一个字段的现实,编辑。FieldName来指定字段名,这个字段名一般是内部名(InternalName),InternalName

 

 

  的获取可以采用SharePoint Manager 2007 或Caml Builder之类的软件或自己写点代码来获取.

------------------------------------------------------------------------------------------
<SharePoint:CreatedModifiedInfo ID="CreatedModifiedInfo1" runat="server" />
------------------------------------------------------------------------------------------

  这个很好理解,它显示列表项目的创建修改信息.

------------------------------------------------------------------------------------------
<SharePoint:AttachmentUpload Visible="false" ID="AttachmentUpload1" runat="server" />
------------------------------------------------------------------------------------------

  这个是用来传附件的.既然我们改的是查看页面,不需要上传的功能,就把它隐藏掉了(Visible=false).

------------------------------------------------------------------------------------------
<table border="0" cellspacing="0" cellpadding="0">
    <SharePoint:FormComponent ID="FormComponent1" TemplateName="AttachmentRows"
                    runat="server" />
</table>
------------------------------------------------------------------------------------------

  虽然上传附件不需要,但是显示已经上传的附件还是需要的,这个就是来实现显示附件的.

  它实际并没有什么内容.它的内容是有另外的模板AttachmentRows来实现的,查找DefaultTemplates.ascx可以找到这个模板:

------------------------------------------------------------------------------------------
<SharePoint:RenderingTemplate ID="AttachmentRows" runat="server">
  <Template>
    <TR id=idAttachmentsRow>
    <TD nowrap="true" valign="top" class="ms-formlabel" width="20%">
    <SharePoint:FieldLabel FieldName="Attachments" runat="server"/>
    </TD>
    <TD valign="top" class="ms-formbody" width="80%">
      <SharePoint:AttachmentsField FieldName="Attachments" runat="server"/>
      <SCRIPT>
      var elm = document.getElementById("idAttachmentsTable");
      if (elm == null || elm.rows.length == 0)
        document.getElementById("idAttachmentsRow").style.display='none';
      </SCRIPT>
    </TD></TR>
  </Template>
</SharePoint:RenderingTemplate>
 <SharePoint:GoBackButton ID="GoBackButton2" Visible="false"                  runat="server" />
------------------------------------------------------------------------------------------

  这个用来返回列表页面.我们自己的按钮代替了它,所有也把它Visible掉了.

  以上的模板不但可以用在查看页面,其他页面也是可以通用的.如果要用到保存页面,需要在模板里加一个保存控件:

<SharePoint:SaveButtonrunat="server"/>

  修改保存页面,(NewForm.aspx或EditForm.aspx)的ListFormWebPart的TemplateName为CodeArt_NoticeTemplate.

  可以看一下效果:

WSS页面定制系列(2)---定制单个列表的表单页面

来源:懒人建站|发布人:懒人建站|2010-03-04|热度:|收 藏|分享到...|报 错
分享到:


相关文档
登 录| 注 册
你也许会喜欢X 关闭↑返回顶部→相关代码/文章
收藏到: 百度搜藏 新浪微博 QQ空间 更多
香港免备案空间,一年80元,500M空间、免费送100M mysql数据库。香港新世界电讯机房,与万网香港空间同机房,懒人建站同服务器。点击这里给我发消息速度演示:jquery 特效