如果想要動態透過SharePoint Server API將Web Part Page動態加入指定的清單中,如:Site Pages或Site Assets中,該如何來實作,以下亞當斯使用Console Application來示範,先建立一個Console Application
1. 加入Microsoft.SharePoint.dll以及System.Web.dll兩個主要的組件
2. 因為當SharePoint2010在建立新的網頁組件頁面(WebPartPage)時,有很多的網頁範本可以選擇,所以假設想要動態建立新的WebPartPage,則必須先指定某個既定的網頁範本,例如最基本的:spstd1.aspx,這些網頁組件頁面範本是存放在以下路徑:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1028\STS\DOCTEMP\SMARTPGS
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中
5. 點擊MyPage.aspx,並進入編輯模式,可以在MyPage中新增網頁組件
沒有留言:
張貼留言