asp.net DropDownList 可输可选 下拉菜单

自定义Controls类

using System;
using System.Collections;
using System.Web.UI;
using System.Web.UI.WebControls;

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

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

        protected override void Render(HtmlTextWriter output)
        {

            int iWidth = Convert.ToInt32(base.Width.Value);
            if (iWidth == 0)
            {
                iWidth = 102;
                base.Width = Unit.Parse("102px");
            }
            int sWidth = iWidth + 20;
            int spanWidth = sWidth - 18;
            output.Write("<div style=\"POSITION:relative;\">");
            output.Write("<span style=\"MARGIN-LEFT:" + spanWidth.ToString() + "px;OVERFLOW:hidden;WIDTH:14px;\">");
            _DropDownList.Width = Unit.Parse(sWidth.ToString() + "px");
            _DropDownList.Height = Unit.Parse("21px");
            _DropDownList.Style.Add("MARGIN-LEFT", "-" + spanWidth.ToString() + "px");
            _DropDownList.ID = base.ID + "_Select";
            _DropDownList.Attributes.Add("onchange", "this.parentNode.nextSibling.value=this.value");
            _DropDownList.Attributes.Add("onfocus", "" + this.getFocusScript() + "");

            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);
                }
            }
            _DropDownList.RenderControl(output);
            output.Write("</span>");
            base.Style.Clear();
            base.Width = Unit.Parse(iWidth.ToString() + "px");
            base.Style.Add("left", "0px");
            base.Style.Add("POSITION", "absolute");
            base.Render(output);

            output.Write("</div>");
        }
        private string getFocusScript()
        {
            string strScript = "\n";
            strScript += "var isExist = -2;\n";
            strScript += "var obj = event.srcElement;\n";
            strScript += "var str = this.parentNode.nextSibling.value;\n";
            strScript += "var ary = obj.options;\n";
            strScript += "for(var i=0;i<ary.length;i++){\n";
            strScript += " if(str == ary[i].text){\n";
            strScript += "  isExist = i;\n";
            strScript += "  break;\n";
            strScript += " }\n";
            strScript += "}\n";
            strScript += "if(isExist != -2){\n";
            strScript += " obj.selectedIndex = isExist;\n";
            strScript += "}\n";
            strScript += "else{\n";
            strScript += " obj.selectedIndex = -1;\n";
            strScript += "}\n";

            return strScript;
        }
    }
}


在.aspx页面引用

页面最上边添加

<%@ Register Assembly="Controls" Namespace="Controls" TagPrefix="hc" %>

调用自定义的可输入可选择的下拉菜单

<hc:DropDownListExtend runat ="server" ID ="NewDropDownList"  Width="100px">
</hc:DropDownListExtend>

在后台.aspx.cs给控件添加数据

添加using Controls;并且在bin文件添加Controls引用

protected void Page_Load(object sender, EventArgs e)
{
	if (!IsPostBack)
        {
		NewDropDownList.Values.Add("1", "A");
		NewDropDownList.Values.Add("2", "B");
		NewDropDownList.Values.Add("3", "C");
		//用NewDropDownList.Text.ToString()取值
	}
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET下拉列表是一种常见的Web表单控件,它允许用户从预定义的选项列表中选择一个值。它可以用于许多不同的场景,例如选择国家、城市、日期、时间等。ASP.NET下拉列表可以通过绑定数据源来动态生成选项列表,也可以手动添加选项。在用户选择一个选项后,可以使用服务器端代码来处理选项的值。 ### 回答2: ASP.NET DropDownList是一种强大的Web控件,它可以简化Web应用程序中下拉列表或下拉框的构建和管理。DropDownList控件允许您从列表中选择一个或多个值,并将所选的值用作应用程序中的参数。 要使用DropDownList控件,您需要在ASP.NET Web表单中添加一个DropDownList控件。在设计时,您可以选择添加选项和设置控件的属性。一旦控件已经添加到页面上,您可以通过代码来对控件进行操作,例如添加或删除选项、检索所选的值等等。 DropDownList控件提供了许多有用的属性和方法,它们可以帮助您管理和控制下拉列表的行为。例如,控件可以设置为多选,可以允许用户自己输入选项,还可以设置自动回发或手动回发。 除了强大的功能和灵活性,DropDownList控件还具有良好的性能和可扩展性。通过使用数据绑定技术,您可以使用多种数据源填充下拉列表,例如数据表、XML文件、Web服务等。此外,控件还可以与JavaScript脚本一起使用,以实现更高级的互动和动态效果。 总之,ASP.NET DropDownList是一种非常好用的Web控件,它可以帮助您快速构建和管理下拉列表,提供丰富的功能和灵活性,并具有良好的性能和可扩展性。如果您是一位ASP.NET开发人员,建议您深入了解DropDownList控件的用法和技术细节,以便更好地支持您的应用程序。 ### 回答3: asp.net dropdownlist是一个web控件(Web Control),用于创建下拉列表(Drop-Down List)。在网页设计中,下拉列表通常用于提供一组可选项,让用户从中选择一个或多个。asp.net dropdownlist是一个非常常用的控件,也是web页面交互性最强的控件之一。 在asp.net dropdownlist中,我们可以通过代码或者视觉对象直接设置下拉列表中的选项,也可以动态地绑定数据来设置下拉列表中的选项。在控件的设计中,asp.net dropdownlist也支持多种常见的属性设置,比如设置选项的可见性、设置默认选项、设置下拉列表的容器等,这些属性设置可以让我们更加方便地管理下拉列表控件。 在使用asp.net dropdownlist时,我们可以通过调用事件来实现下拉列表的交互功能。比如,我们可以通过监听控件对象的SelectedIndexChanged事件,来实现在用户改变下拉列表选项时触发相应的事件操作。此外,通过设置控件对象的Enabled属性,我们可以在需要时禁用控件对象,从而防止用户对下拉列表进行操作。 总体来说,asp.net dropdownlist是一个非常实用的控件,可以帮助我们在web页面中创建交互性更强、更具体现力的下拉列表控件。如果掌握了它的使用方法,将可以为我们提升页面的交互性和使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值