首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>asp.net可输入的下拉框复合控件代码
asp.net可输入的下拉框复合控件代码
来源: 发布时间:2008-03-12 发布人: 浏览: 人次   字体: [ ]  

前段时间,要做一个可输入的下拉框,在网上查了一些资料,自己做了一个。总体的思想是用一个文本框和下拉框做,将他们的位置用样式来控制,并用Render方法来控制输出。具体实现如下:

(1)新建一个Web控项

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

namespace MyWebControl
{
    ///   <summary>  
    ///   WebCustomControl1的摘要说明, 带输入框的下拉框  
    ///   </summary>  
    [DefaultProperty("Text"),
    ToolboxData("<{0}:WebCustomControl1   runat=server></{0}:WebCustomControl1>")]
    public class WebCustomControl1 : System.Web.UI.WebControls.WebControl, INamingContainer
    {
        private TextBox textBox;  //用于输入的文本框
        private DropDownList ddlListItem;//下拉框
        private Hashtable values;//用于绑定下拉框框的值

        public Hashtable Values
        {
            get
            {
                return values;
            }
            set
            {
                values = value;
            }
        }
        public WebCustomControl1() //初始化该控件
        {
            textBox = new TextBox();
            textBox.ID = "textBox";//用于当下拉框改变时用的!
            values = new Hashtable();
            textBox.Style.Add("border", "0px");
            ddlListItem = new DropDownList();
          
        } 
        protected override void Render(HtmlTextWriter writer)
        {
            int iWidth = Convert.ToInt32(base.Width.Value);
            //设置方本框和下拉框的大小
            if(iWidth==0)
            {
                textBox.Width = Unit.Parse("75px");
                ddlListItem.Width = Unit.Parse("100px");
            }
            else
            {
                textBox.Width =Unit.Parse(iWidth+"px");
                int ddlWidth=iWidth+25;
                ddlListItem.Width = Unit.Parse(ddlWidth + "px");
            }
            writer.Write("<span style='position:relative'>");
            //初始化下框!
            if (values.Count >0)
            {
                foreach (string key in values.Keys)
                {
                    ListItem item = new ListItem();
                    item.Text = key;
                    item.Value = key;
                    ddlListItem.Items.Add(key);
                }
            }
            //当只有个选项时!
            if (values.Count == 1)
            {
                textBox.Text = ddlListItem.Items[0].Text;
            }
            //多处选项时,先将第一个选项选中,如果没有这个判断,当加载时选第一个时不能选中!
            if (values.Count > 1)
            {
                textBox.Text = ddlListItem.Items[0].Text;
            }
            //下拉框选项改变时激发的javascript事件,但也可以做成服务器事件!
            ddlListItem.Attributes.Add("onchange", "document.getElementById('textBox').value=this.value");
            ddlListItem.RenderControl(writer);
            writer.Write("<span style='position:absolute;left:1px;width:100px;'>");
            textBox.RenderControl(writer);
            base.Render(writer);
            writer.Write("</span></span>");
            writer.Flush();
            writer.Close();           
        }
       
    }
}以上就是具体实现


相 关 文 章   发布商链接
·如何在asp.net中获得textBox当前光标...
·关于web.config的数据库连接的相对路...
·ASP.NET取得物理路径和虚拟路径的代...
·解决ASP.NET出现"正在中止线程"的错...
·ASP.NET中跨页面实现DataGrid行多选...
·ASP.NET动态增加或减少TABLE列和行实...
·ASP.net变量保存几种方法应用场合及...
·asp.net生成静态页面方法实例
·asp.net多文件上传实例详解
·asp.net实现断点续传的原理及其代码...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解ASP.NET实现加密Cook...
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·asp.net实现将Excel文件导入...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net实现将Excel文件导入...
·ASP.NET取得物理路径和虚拟路...
·asp.net中Web.Config配置文件...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net中DataBinder.Eval的...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·ASP.net 实现批量数据更新或...
·asp.net中常见的几种日历控件...
·示例小解LinkButton组件中的C...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .