我必须为必须包含预定义的Web部件页的客户端创建站点定义。我可以创建Web部件页面,但在创建时将它们附加到网站上时会感到不知所措。如何将Web部件页面添加到网站定义?
我知道通过SharePoint创建的Web部件页面存储在文档库中。我是否需要预先填充“Web部件页”文档库并将所需的导航添加到这些文件中?如果是这样,我该如何添加所需的aspx文件?
最后,是否有任何警告,我应该知道在onet中配置自定义Web部件页?
我必须为必须包含预定义的Web部件页的客户端创建站点定义。我可以创建Web部件页面,但在创建时将它们附加到网站上时会感到不知所措。如何将Web部件页面添加到网站定义?
我知道通过SharePoint创建的Web部件页面存储在文档库中。我是否需要预先填充“Web部件页”文档库并将所需的导航添加到这些文件中?如果是这样,我该如何添加所需的aspx文件?
最后,是否有任何警告,我应该知道在onet中配置自定义Web部件页?
您可以按照这种使用功能装订的方法。我用它来自动Web部件添加到我的网站创建时:
就可以为他们提供在ONET.XML页面。
首先将Web部件页面模板添加到您的网站定义中。
然后在您的ONET.XML中提供一个页面实例(添加了web parted)。
这东西有充分的说明泰德帕蒂森的书Inside Windows SharePoint Services 3.0
的Default.aspx
<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Page language="C#" MasterPageFile="~masterurl/default.master"
Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage" %>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
<table cellspacing="0" border="0" width="100%">
<tr>
<td class="ms-pagebreadcrumb">
<asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>
</td>
</tr>
<tr>
<td>
<table width="100%" cellpadding=0 cellspacing=0 style="padding: 5px 10px 10px 10px;">
<tr>
<td valign="top" width="70%">
<WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Left" Title="loc:Left" />
</td>
<td> </td>
<td valign="top" width="30%">
<WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="Right" Title="loc:Right" />
</td>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
<SharePoint:ProjectProperty ID="ProjectProperty1" Property="Title" runat="server"/>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
<label class="ms-hidden"><SharePoint:ProjectProperty ID="ProjectProperty2" Property="Title" runat="server"/></label>
</asp:Content>
ONET.XML片断
<Module Name="Default" Url="" >
<File Url="default.aspx" Type="Ghostable">
<!-- Add a Web Part to left zone -->
<AllUsersWebPart WebPartZoneID="Left" WebPartOrder="0">
<![CDATA[
<WebPart
xmlns="http://schemas.microsoft.com/WebPart/v2"
xmlns:cewp="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<Title>Working with Site Definitions</Title>
<FrameType>TitleBarOnly</FrameType>
<cewp:Content>
This Web Part was added through declarative logic in ONET.XML
</cewp:Content>
</WebPart>
]]>
</AllUsersWebPart>
</File>
</Module>
罗布的回答是不是我正在看着。我们要做的是添加额外的Web部件页面,这些Web部件页面将具有预先定义的Web部件布局,这些布局已经设置并链接到顶部或快速导航。 我从来没有想过使用功能和装订它!我不知道为什么要考虑我们这样做我们所有的自定义列表。我会试一试!感谢webwires。 – knight0323 2013-08-28 16:35:51