2011年8月18日 星期四

How to coding to creating a web part page in SharePoint 2010(如何在某個List(如Site Pages/Site Assets)裡加入一個web part page)

如果想要動態透過SharePoint Server API將Web Part Page動態加入指定的清單中,如:Site Pages或Site Assets中,該如何來實作,以下亞當斯使用Console Application來示範,先建立一個Console Application

1. 加入Microsoft.SharePoint.dll以及System.Web.dll兩個主要的組件

clip_image001

2. 因為當SharePoint2010在建立新的網頁組件頁面(WebPartPage)時,有很多的網頁範本可以選擇,所以假設想要動態建立新的WebPartPage,則必須先指定某個既定的網頁範本,例如最基本的:spstd1.aspx,這些網頁組件頁面範本是存放在以下路徑:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1028\STS\DOCTEMP\SMARTPGS

clip_image002

3. 在Main.cs中加入以下程式碼,透過SPUtility.GetGenericSetupPath先取出範本存放的路徑,接著設定網頁範本名稱以及想要放置的資料夾或清單名稱,最後透過SPFile物件,將自訂的網頁組件頁面新增到SitePages清單中:

try

{

using (SPWeb web = new SPSite("http://sharepoint").OpenWeb())

{

//Create Page in SitePages List (If English Version Please use 1033)

string hive = SPUtility.GetGenericSetupPath("TEMPLATE\\1028\\STS\\DOCTEMP\\SMARTPGS\\");

FileStream stream =

new FileStream(Path.Combine(hive, "spstd1.aspx"), FileMode.Open);

SPFolder libraryFolder = web.GetFolder("SitePages");

SPFileCollection files = libraryFolder.Files;

SPFile file = files.Add("MyPage.aspx", stream);

Console.WriteLine("Create Custom Page OK");

}

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

Console.Read();

4. 建置專案,並結執行測試,開啟http://sharepoint/SitePages/Forms/AllPages.aspx,可以看到MyPage.aspx已經被API動態新增到SitePages中

clip_image003

5. 點擊MyPage.aspx,並進入編輯模式,可以在MyPage中新增網頁組件

clip_image005

沒有留言: