现在的位置: 首页 > 综合 > 正文

一个可输入可选择的控件

2014年02月21日 ⁄ 综合 ⁄ 共 2217字 ⁄ 字号 评论关闭

using System;
using System.Collections;
using System.ComponentModel;
using System.Web.UI;
//using System.Web.UI.Design;
using System.Web.UI.WebControls;

namespace JCGAWebControls
{
    [ToolboxData("<{0}:TextBox runat=/"server/" />")]
    public class MyTextDrop : System.Web.UI.WebControls.TextBox
    {
        private Hashtable _values;
        public DropDownList _DropDownList;

        public MyTextDrop()
        {
            _DropDownList = new DropDownList();
            _values = new Hashtable();
        }

        public Hashtable Values
        {
            get
            {
                return _values;
            }
            set
            {
                _values = value;
            }
        }

        protected override void Render(System.Web.UI.HtmlTextWriter Output)
        {
            int iWidth = Convert.ToInt32(base.Width.Value);
            if (iWidth == 0)
            {
                iWidth = 102;
            }
            int sWidth = iWidth + 16;
            int spanWidth = sWidth - 18;
            Output.Write("<div style=/"POSITION:relative/">");
            Output.Write("<span style=/"MARGIN-LEFT:" + spanWidth + "px;OVERFLOW:hidden;WIDTH:18px/">");
            _DropDownList.Width = Unit.Parse(sWidth + "px");
            _DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth + "px");
            _DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.value");
            if (_values.Count > 0)
            {
                foreach (string key in _values.Keys)
                {
                    ListItem item = new ListItem();
                    item.Value = key;
                    item.Text = _values[key].ToString();
                    _DropDownList.Items.Add(item);
                }
            }

            //如果只有一个可选内容
            if (_DropDownList.Items.Count == 1)
            {
                ListItem item = new ListItem();
                item.Value = "";
                item.Text = " ";
                _DropDownList.Items.Add(item);
                _DropDownList.SelectedIndex = 1;
            }
            _DropDownList.RenderControl(Output);
            Output.Write("</span>");
            base.Style.Clear();
            base.Width = Unit.Parse(iWidth + "px");
            base.Style.Add("left", "0px");
            base.Style.Add("POSITION", "absolute");
            base.Render(Output);
            Output.Write("</div>");
        }
    }
}
 

抱歉!评论已关闭.