WebPart Complex Property

來源:互聯網
上載者:User

下面代碼是實現一個Dropdown,同時實現其同步變化。代碼如下:

Complex Property

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using System.Collections;

namespace WebPartCollection
{
[Guid("cf18e6af-3ab5-4503-8a41-c24ac8d38566")]
public class ComplexProperty : System.Web.UI.WebControls.WebParts.WebPart
{
public ComplexProperty()
{
}
private string _FirstName;
[Personalizable]
[WebBrowsable(true)]
[Category("Name")]
[WebDisplayName("FirstName")]
public string FirstName
{
get { return _FirstName; }
set { _FirstName = value; }
}
private string _LastName;
[Personalizable]
[WebBrowsable(true)]
[Category("Name")]
[WebDisplayName("LastName")]
public string LastName
{
get { return _LastName; }
set { _LastName = value; }
}

protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
}
public override EditorPartCollection CreateEditorParts()
{
ArrayList editorArray = new ArrayList();

WebPartProperty1EditPart edPart = new WebPartProperty1EditPart();
edPart.ID = "WebPartProperty1EditPart1";
editorArray.Add(edPart);

EditorPartCollection initEditorParts = base.CreateEditorParts();

EditorPartCollection editorParts = new EditorPartCollection(initEditorParts, editorArray);

return editorParts;
}
protected override void CreateChildControls()
{

base.CreateChildControls();

}
}

public class WebPartProperty1EditPart : EditorPart
{
private DropDownList _dlValueList;
private Label _lbCompany;


//建立下拉式清單控制項
protected override void CreateChildControls()
{
_lbCompany = new Label();
_lbCompany.Text = "Company Name: ";

_dlValueList = new DropDownList();
_dlValueList.Items.Add("Carat");
_dlValueList.Items.Add("HR");

this.Controls.Add(_lbCompany);
this.Controls.Add(new LiteralControl("<br/>"));
this.Controls.Add(_dlValueList);
}
//將WebPart的值同步到下拉控制項
public override void SyncChanges()
{
this.EnsureChildControls();
ComplexProperty wp = (ComplexProperty)this.WebPartToEdit;
_dlValueList.SelectedValue = wp.FirstName;
}
//將下拉控制項選擇的值應用到WebPart
public override bool ApplyChanges()
{
this.EnsureChildControls();
ComplexProperty wp = (ComplexProperty)this.WebPartToEdit;
wp.FirstName = _dlValueList.SelectedValue;
return true;
}
}

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.