标题: ASP.NET2.0 WebControl开发---自定义DropDownList
- 小寒 2007-09-24 10:18 阅读:875
- 评论:4 查看评论 | 添加评论
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
查看评论 | 添加评论
返回顶部 | 返回首页