Web Part Web Part程式開發系列(2) 從改造Web Part本身做起 文/林賢達 -----box----- #程式1 private string _url; private const string defaultUrl=""; -----end----- -----box----- #程式2 public string URL{ get{return _url;} set{_url = value;} } -----end----- -----box----- #程式3 [Browsable(true), Category("Custom Properties"), DefaultValue(defaultUrl), WebPartStorage(Storage.Personal), FriendlyName("URL"),Description ("Please Enter URL")] -----end----- -----box----- #程式4 public class ToolPart1: Microsoft.SharePoint.WebPartPages.ToolPart{ //宣告一個私有變數儲存文字方塊的名稱 private string inputTextBox; } -----end----- -----box----- #程式5 public ToolPart1{ this.Init += new EventHandler(ToolPart1_Init); } private void ToolPart1_Init (object sender, System.EventArgs e ){ //設定文字方塊的名稱 inputTextBox="textboxof" + this.UniqueID; } -----end----- -----box----- #程式6 protected override void RenderToolPart (HtmlTextWriter output){ //建立使用者介面以及指定預設值 WebPart1 wp1 = (WebPart1) ParentToolPane.SelectedWebPart; output.Write ("Please Enter URL:
"); } -----end----- -----box----- #程式7 public override void ApplyChanges(){ WebPart1 wp1 = (WebPart1) this.ParentToolPane.SelectedWebPart; //根據文字方塊名稱取得輸入資料並傳回網頁組件 wp1.URL = Page.Request.Form[inputTextBox]; } -----end----- -----box----- #程式8 public override ToolPart[] GetToolParts() { ToolPart[] toolparts = new ToolPart[3]; toolparts[0] = new WebPartToolPart(); toolparts[1] = new CustomPropertyToolPart(); //建立自訂的工具組件 toolparts[2] = new ToolPart1(); return toolparts; } -----end----- -----box----- #程式9 public void CreateToolPaneControls (ToolPane myToolPane){ ToolPart myToolPart=new ToolPart1(); myToolPane.Controls.Add(myToolPart); myToolPane.InsertToolPart(0,myToolPart); myToolPane.Apply.Click+= new EventHandler(this.Apply_Click); myToolPane.Cancel.Click+= new EventHandler(this.Cancel_Click); } public void Apply_Click (object sender, EventArgs e){…} public void Cancel_Click (object sender, EventArgs e){…} -----end----- -----box----- #程式10 public bool ShowZoneIdentification(){ return false; } -----end----- -----box----- public string ToolPaneTemplate{ get{ string myTPTemplate; myTPTemplate = "" + " " + " " + "" + "" + "" + " " + "" + "" + ""; return myTPTemplate; } } -----end----- -----box----- #程式12 protected override void RenderWebPart (HtmlTextWriter output){ output.Write(" "); } -----end----- -----box----- #程式13 public override void CreateWebPartMenu(){ base.CreateWebPartMenu (); MenuItem myItem=new MenuItem("開啟工具窗格", "javascript:MSOTlPn_ShowToolPane ('-1','" + this.UniqueID.ToString() + "');", "mnuOpenToolPane"); this.WebPartMenu.MenuItems.Add(myItem); } -----end-----