1 建立一個WebControlLibrary項目
2 編寫控制項代碼namespace DropDownListTemp
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:WebDropDownList runat=server></{0}:WebDropDownList>")]
public class WebDropDownList : CompositeControl
{
///////////////////////////////////////////////////////////////////////
// 1. 定義屬性
///////////////////////////////////////////////////////////////////////
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public model Model
{
get
{
return modeltemp;
}
set
{
modeltemp = value;
}
}
public enum model
{
sex,city
}
public model modeltemp;
///////////////////////////////////////////////////////////////////////
// 2. 定義控制項
///////////////////////////////////////////////////////////////////////
private Label lbTemp;
private DropDownList ddlTemp;
///////////////////////////////////////////////////////////////////////
// 3. 添加控制項
///////////////////////////////////////////////////////////////////////
protected override void CreateChildControls()
{
Controls.Clear();
//添加label標題
lbTemp = new Label();
lbTemp.ID = "lbTemp";
lbTemp.Text = "DropDownList Example";
Controls.Add(lbTemp);
//添加換行
Controls.Add(new LiteralControl("<br>"));
//添加下拉式清單
ddlTemp = new DropDownList();
ddlTemp.ID = "ddlTemp";
ddlTemp.Width = 200;
ListItem list = new ListItem(" ", "-1");
ddlTemp.Items.Add(list);
switch (modeltemp)
{
case model.sex:
ListItem listman = new ListItem("男", "0");
ddlTemp.Items.Add(listman);
ListItem listwoman = new ListItem("女", "1");
ddlTemp.Items.Add(listwoman);
break;
case model.city:
ListItem listBJ = new ListItem("北京", "0");
ddlTemp.Items.Add(listBJ);
ListItem listTJ = new ListItem("天津", "1");
ddlTemp.Items.Add(listTJ);
break;
}
Controls.Add(ddlTemp);
base.CreateChildControls();
}
}
}
3 測試使用控制項
建立一個web頁面,添加控制項dll到工具箱,把控制項拖到葉面上,選擇model屬性為sex或city,即可,預設是sex