SharePoint学习札记[6] — WebPart之基础
Asp.net中的Web Part與MOSS中的Web Part有什么區(qū)別?WebPart怎么開發(fā)怎么部署?
?MOSS2007基礎(chǔ):Windows SharePoint Services 3.0中的Web Part?[Sunmoonfire撰寫]
?MOSS2007基礎(chǔ):開發(fā)自定義WebPart?[Sunmoonfire撰寫]
?MOSS2007基礎(chǔ):部署自定義WebPart?[Sunmoonfire撰寫]
《WalkThrough: SharePoint WebPart 入門指南一》[涂曙光撰寫]
《WalkThrough: SharePoint WebPart 入門指南二》[涂曙光撰寫]
《WalkThrough: SharePoint WebPart 入門指南三》[涂曙光撰寫]
《WalkThrough: SharePoint WebPart 入門指南四》[涂曙光撰寫]
《WalkThrough: SharePoint WebPart 入門指南五》[涂曙光撰寫]
MOSS2007基礎(chǔ):Windows SharePoint Services 3.0中的Web Part
???? 開發(fā)人員擴(kuò)展WSS 2.0站點的最常使用的方式就是開發(fā)自定義的Web部件。Web部件絕對是一個偉大的發(fā)明,因為她可以允許我們隨意在頁面里增加用戶自定義的元素或?qū)崿F(xiàn)個性化。因此,已經(jīng)有很多MS或第三方公司開發(fā)的基于WSS 2.0的自定義Web部件。
????? 因為WSS 2.0中Web部件的成功,所以MS才決定在ASP.NET 2.0中增加對開發(fā)自定義Web部件的支持。這使得更多的開發(fā)人員可以在他們的ASP.NET應(yīng)用中使用這一出色的特性,而且完全可以脫離WSS 2.0環(huán)境。
????? 因此,現(xiàn)在有兩種不同的Web部件。老的WSS風(fēng)格的WebPart依賴于Microsoft.SharePoint.dll,必須繼承自WSS 2.0所定義的WebPart基類,其命名空間為Microsoft.SharePoint.WebPartPages。新的ASP風(fēng)格WebPart依賴于System.Web.dll,必須繼承自不同的一個由ASP.NET 2.0定義的WebPart基類,其命名空間為System.Web.UI.WebControls.WebParts。
??? 有一個大家聽了絕對高興的消息。在WSS 3.0中既可以使用老的WSS風(fēng)格的WebPart,又可以使用新的ASP風(fēng)格WebPart。這是通過將WSS 3.0支持的WebPart建立在頂層的ASP.NET WebPart結(jié)構(gòu)基礎(chǔ)上,重新編寫Microsoft.SharePoint.dll而實現(xiàn)的。這樣WSS 3.0運行時環(huán)境將兼容專為WSS 2.0編寫的WebPart。
??? 為了向大家解釋W(xué)ebPart如何載入并在WSS 3.0中運行,下面將討論一下WSS 3.0是如何被重新在ASP.NET? 2.0的WebPart基礎(chǔ)上設(shè)計構(gòu)建的。我將深入WSS 3.0內(nèi)部,看看它的Web部件頁是如何組織的。接下來的日志中我們再研究在WSS 3.0中開發(fā)自定義WebPart的細(xì)節(jié)。(敬請關(guān)注)
??? 想要在一個ASP.NET 2.0的應(yīng)用中使用WebPart,我們必須創(chuàng)建一個.aspx頁面并包括一個WebPartManager控件和至少一個WebPartZone控件。WebPartManager控件負(fù)責(zé)將WebPart相關(guān)的數(shù)據(jù)序列化,進(jìn)而實現(xiàn)存取。要知道,所有的這些數(shù)據(jù)都是要進(jìn)入ASP.NET服務(wù)的數(shù)據(jù)庫的。
??? 該.aspx頁面作為一個Web部件頁也可以包括Editor Parts,它將允許用戶對WebPart進(jìn)行定制和個性化WebPart屬性。也可以包括一個Catalog Parts,它將允許用戶添加新的WebPart到Web部件區(qū)域中。如果希望了解更多關(guān)于ASP.NET 2.0種內(nèi)功個性化和自定義WebPart的內(nèi)容,您可以參考msdn。(http://msdn.microsoft.com/msdnmag/issues/05/09/WebParts)
??? 在WSS 3.0中的WebPart是架構(gòu)在一個名為SPWebPartManager的控件基礎(chǔ)上的,它本身源于ASP.NET 2.0的WebPartManager控件。SPWebPartManager控件重寫了WebPartManager控件的許多標(biāo)準(zhǔn)方法,使得WebPart數(shù)據(jù)存到WSS的內(nèi)容數(shù)據(jù)庫中,而不是ASP.NET的服務(wù)數(shù)據(jù)庫中。當(dāng)然,通常情況下我們并不需要關(guān)心這些。只要交給SPWebPartManager控件處理就可以了,而且這個并且這僅需的一個控件實例已經(jīng)包括到母版頁default.master中了,我們的創(chuàng)建的內(nèi)容頁面都已繼承了該母版。
??? 其他幾個典型的WSS 3.0Web部件頁中的控件包括WebPart zones,Editor Parts和Catalog Parts。需要注意的是,在WSS 3.0Web部件頁中使用的WebPart zones必須用由Microsoft.SharePoint.WebPartPages命名空間定義的WebPartZone控件來創(chuàng)建,而不是標(biāo)準(zhǔn)的ASP.NET 2.0中的WebPartZone控件。
??? WebPartZone控件的實例通常在內(nèi)容頁面中來定義。下面的示例代碼顯示了如何創(chuàng)建一個內(nèi)容頁面,并設(shè)計其成為一個WSS 3.0站點中的Web部件頁。可以看到,該.aspx頁面鏈接到default.master,同時它繼承自WebPartPage基類,在占位符PlaceHolderMain中包括了兩個WebPartZone控件。
<%@ Assembly Name="[Microsoft.SharePoint.dll的完全限定名稱]" %>
<% Page language="c#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="[Microsoft.SharePoint.dll的完全限定名稱]" %>
<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
<h3>我的自定義Web部件頁</h3>
<table border="0" cellpadding="3" cellspacing="0">
<tr>
<td valign="top">
<WebPartPages:WebPartZone runat="server" ID="Left" Title="左側(cè)區(qū)域" />
</td>
<td valign="top">
<WebPartPages:WebPartZone runat="server" ID="Right" Title="右側(cè)區(qū)域" />
</td>
</tr>
</table>
</asp:Content>
當(dāng)我們創(chuàng)建一個標(biāo)準(zhǔn)的ASP.NET 2.0應(yīng)用程序中的Web部件頁時,我們必須添加與WebPartManager控件交互的邏輯,用來管理WebPart顯示的模式。通常情況下,我們還需要明確添加Editor Parts和Catalog Parts到頁面的HTML布局中并做相應(yīng)的調(diào)整。但如果在WSS 3.0站點的內(nèi)容頁面里,我們就不必做這些事情了。我們只要從Microsoft.SharePoint.WebPartPages命名空間中繼承WebPartPage類,所以這些事都交給它在后臺完成就好了。當(dāng)用戶進(jìn)入頁面編輯模式后,Editor Parts或Catalog Parts就會自動出現(xiàn)在右側(cè),供用戶來添加WebPart到Web部件區(qū)域或更改已有的WebPart屬性。
總結(jié)
以上是生活随笔為你收集整理的SharePoint学习札记[6] — WebPart之基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】MySQL中select * fo
- 下一篇: 看了《梦华录》才发现:什么咖啡拉花 都是