我將配置發佈頁面作爲功能的一部分,並在頁面上放置單個列表視圖Web部件(請參閱下面的代碼)。這一切都很完美。SharePoint 2010:重新部署功能會將重複的Web部件添加到頁面
<Elements>
<Module>
<File Path="default.aspx" Url="BulletinBoard.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE">
<Property Name="Title" Value="Bulletin Board" />
<Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/ListNewsletterStyle.aspx" />
<Property Name="ContentType" Value="Page" />
<Property Name="PublishingPageImage" Value="" />
<View List="Lists/BulletinBoard" BaseViewID="2" WebPartZoneID="Main" WebPartOrder="1">
<![CDATA[
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title">Active Announcements</property>
<property name="ChromeType">None</property>
</properties>
</data>
</webPart>
</webParts>
]]>
</View>
</File>
</Module>
</Elements>
唯一的問題是,每一個我通過Visual Studio重新部署我的功能時,列表視圖Web部件被複制(即一個又一個被添加到Web部件區域)。
這個問題只有出現影響網絡零件與<查看... >標記。配置了< AllUsersWebPart ... >標籤的Web部件不會被複制。
我該如何預防?
感謝您的建議Anita。誠然,爲了一致性,我希望能夠在同一個地方(通過XML特性)提供我所有的頁面和Web部件,但是我可以使用特性接收器檢查是否有重複項,並在必要時刪除它們。至於「標記」引用,StackOverFlow在我的文章中沒有包含我的HTML標記,請參閱上面的更新。 – 2011-04-14 08:39:44