ASP.NET2.0 WebControl开发自定义DropDownList

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
原文地址:https://www.cnblogs.com/xh831213/p/903894.html