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