sharepoint 2010 自定义页面布局

在sharepoint开发中经常遇到 自定义网站栏、内容类型,页面布局和模板页也会遇到,遇到机会就相对比较小。

首先新建一个空的sharepoint项目:

1)创建网站兰:

修改SiteColumns\Elements.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID="{76C140E1-D827-433B-AD38-257F9594B846}"
         Name="BenefitProvider"
         DisplayName="Provider Name"
         Group="Human Resources"
         Type="Text"
         Required="FALSE"/>
  <Field ID="{A1758D70-B479-469C-90BB-C3038ED42B15}"
         Name="BenefitProviderLogo"
         DisplayName="Provder Logo"
         Group="Human Resources"
         Type="Image"
         Required="FALSE"/>
  <Field ID="{5F516D92-969C-4661-81B9-C9210E2A2FDC}"
         Name="BenefitType"
         DisplayName="Benefit Category"
         Group="Human Resources"
         Type="Choice"
         Required="FALSE">
    <CHOICES>
      <CHOICE>Medical</CHOICE>
      <CHOICE>Dental</CHOICE>
      <CHOICE>Vision</CHOICE>
      <CHOICE>Insurance</CHOICE>
    </CHOICES>
  </Field>
  <Field ID="{521D5F12-16BC-4E82-997C-F28933ABE59E}"
         Name="BenefitDescription"
         DisplayName="Benefit Description"
         Group="Human Resources"
         Type="HTML" RichText="TRUE" RichTextMode="FullHtml"
         Required="FALSE"/>
</Elements>
View Code

2)创建内容内型

修改ContentTypes\Elements.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <!-- Parent ContentType: 文章页面 (0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D) -->
  <ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D0086e87a8467684813ad2d89881b6da33d"
               Name="Benefits Information Page"
               Group="Human Resources"
               Description="Benefits Information page layout content type"
               Inherits="TRUE"
               Version="0">
    <FieldRefs>
      <FieldRef ID="{76C140E1-D827-433B-AD38-257F9594B846}" Name="BenefitProvider"/>
      <FieldRef ID="{A1758D70-B479-469C-90BB-C3038ED42B15}" Name="BenefitProviderLogo"/>
      <FieldRef ID="{5F516D92-969C-4661-81B9-C9210E2A2FDC}" Name="BenefitType"/>
      <FieldRef ID="{521D5F12-16BC-4E82-997C-F28933ABE59E}" Name="BenefitDescription"/>
    </FieldRefs>
  </ContentType>
</Elements>
View Code

注意这里的<FieldRef ID="{76C140E1-D827-433B-AD38-257F9594B846}" Name="BenefitProvider"/>是刚才创建网站栏的ID。

3)创建自定义 页面布局

我这里推荐大家在sharepoint Designer把页面布局的内容创建好,然后再用feature在部署。

在sharepoint Designe中:

在用sharepoint designer导出改文件

在VS中

把那个文本文件从命名为BenefitsInformation.aspx,把先前sharepoint designer导出文件的内容拷贝到这个文件上来。

<%@ Page language="C#"   Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:webpartpageexpansion="full" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePointWebControls" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ContentPlaceholderID="PlaceHolderPageTitle" runat="server">
    <SharePointWebControls:FieldValue id="PageTitle" FieldName="Title" runat="server"/>
</asp:Content>
<asp:Content ContentPlaceholderID="PlaceHolderMain" runat="server">
<SharePointWebControls:TextField FieldName="76c140e1-d827-433b-ad38-257f9594b846" runat="server"></SharePointWebControls:TextField>
<PublishingWebControls:RichImageField FieldName="a1758d70-b479-469c-90bb-c3038ed42b15" runat="server"></PublishingWebControls:RichImageField>
<SharePointWebControls:DropDownChoiceField FieldName="5f516d92-969c-4661-81b9-c9210e2a2fdc" runat="server"></SharePointWebControls:DropDownChoiceField>
<PublishingWebControls:RichHtmlField FieldName="521d5f12-16bc-4e82-997c-f28933abe59e" runat="server"></PublishingWebControls:RichHtmlField>
</asp:Content>
View Code

修改BenefitsLayout\Elements.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="BenefitsLayout"  Url="_catalogs/masterpage" RootWebOnly="TRUE">
    <File Path="BenefitsLayout\BenefitsInformation.aspx" Url="BenefitsInformation.aspx" Type="GhostableInLibrary">
      <Property Name="Title" Value="Benefits Information Page" />
      <Property Name="MasterPageDescription" Value="Use benefits page to publish content related to benefits information" />
      <Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
      <Property Name="PublishingAssociatedContentType" Value=";#Benefits Information Page;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D0086e87a8467684813ad2d89881b6da33d;#" />
    </File>
  </Module>
</Elements>
View Code

注意这里的   <Property Name="PublishingAssociatedContentType" Value=";#Benefits Information Page;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D0086e87a8467684813ad2d89881b6da33d;#" />中间这一长串就是我们先前定义的内容类型的ID。

最后发布,发布结果如下:

网站栏:

内容类型:

自定义页面布局:

用我们自己的页面布局来创建一个页面

bianjia

编辑信息如下:

最后签入:

posted on 2014-01-06 23:06  dz45693  阅读(2545)  评论(2编辑  收藏  举报

导航