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-----