![](/images/cnblogs_com/xh831213/creat.gif)
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 测试使用控件{
[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();
}
}
}
建立一个web页面,添加控件dll到工具箱,把控件拖到叶面上,选择model属性为sex或city,即可,默认是sex