介紹了WSS v3中WebPart的基本情況。本文將介紹創建ASP風格的WebPart。最簡單的步驟為創建一個類繼承自System.Web.UI.WebControls.WebPart類,覆蓋(override)方法RenderContents。如果您想要繼續為WebPart增加屬性(property),可以使用在ASP.NET中相同的辦法。如下面的代碼顯示了一個登錄後的用戶名。本例假設Visual Studio 2005,Microsoft Office SharePoint Server(MOSS) 2007和WSS v3安裝在同一台機器上。
1、首先,打開Visual Studio 2005.
我們將使用類庫項目來創建ASP風格的WebPart。點擊文件--〉新建項目。在項目類型中選擇Visual C#,模板中選類庫(Class Library)。在名稱出輸入TestWebParts。選擇合適的保存路徑。完成後點擊確定。
2、添加對System.Web.dll的引用
在Solution Explorer中右鍵點擊引用(References),選擇添加引用。
選擇.NET標簽下的System.Web,將其添加到引用。
3、添加必須的命名空間
添加下面的命名空間
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
4、繼承自類System.Web .UI.WebControls.WebPart
將Class1.cs重命名為SimpleWebPart,並添加繼承System.Web.UI.WebControls.WebParts來創建ASP風格的WebPart。代碼如下:
我們必須重寫RenderContents方法。如上所示。RenderContents方法將根據其參數writer所指定的內容來展示WebPart。writer參數是一個HtmlTextWriter,用於描述將要顯示到客戶端浏覽器中的HTML內容。
如果我們的WebPart中包含有子控件,我們還需要在這裡調用基類的RenderContents方法或者在我們想要顯示子控件的地方調用基類的RenderChildren方法,將子控件的內容輸出到writer。
上面的WebPart定義說明該代碼並不依賴於Microsoft.SharePoint.dll。所以它既可以被用在ASP.NET應用程序中,也可以用在WSS v3站點。不過在大多數情況下,我們還是要在自定義WebPart中添加對Microsoft.SharePoint.dll的引用,因為這樣就可以使用WSS v3提供的對象模型了。
除支持ASP風格的WebPart外,WSS v3同時被設計為可以支持WSS v2環境下創建的WebPart。舊的WSS風格WebPart繼承自Microsoft.SharePoint.dll中的WebPart基類,它是定義在Microsoft.SharePoint.WebPartPages命名空間下的。
在WSS v2中的Microsoft.SharePoint.dll的WebPart類是繼承自ASP.NET的Control類。如下圖所示。
但是,同時我們也可以看到,WSS v3中Microsoft.SharePoint.dll的WebPart類被修改為繼承自ASP.NET的WebPart類。這種將一個組件的基類改為較新的版本的技術(versioning technique)就是rebasing。對Microsoft.SharePoint.dll中的WebPart類的rebasing是使WSS v3環境支持老的WSS風格WebPart的關鍵。
如果查看一個WSS v3應用程序裡的標准的Web.config文件,我們將發現裡面包括了重新定向WSS v2的Microsoft.SharePoint.dll到WSS v3版的Microsoft.SharePoint.dll的配置元素。這個重定向與上面所說的rebasing配合起來共同保障了WSS v2環境下所寫的WebPart的Dll運行在WSS v3環境中,而不必做任何的改動。
因此,如果我們想要將一個WSS v2的WebPart項目轉移到Visual Studio 2005中,我們可以使用與從前相同的方式繼續擴充我們的代碼,還是可以繼續運行。同時,在轉移到Visual Studio 2005時,我們還可以選擇將項目中對Microsoft.SharePoint.dll的引用切換到WSS v3的版本。這樣,該項目的WebPart就會轉到上圖右側的WSS v3體系中。