<asp:textbox id="txtJob" style="FONT-SIZE: 10pt;BORDER-RIGHT-STYLE: none;TEXT-ALIGN: center;TEXT-vAlign: center" runat="server" Width="50px" Height="22"></asp:textbox><span style="WIDTH: 16px"><asp:dropdownlist id="dlstJob" style="MARGIN-LEFT: -50px" runat="server" Width="67px" onchange="document.all('txtJob').value=this.value;"></asp:dropdownlist></span>

解决方案 »

  1.   

    ComboBox.jsfunction LostinetSampleComboBox_Init(inputID,listboxID)
    {
    function tb(){return document.all(inputID);}
    function lb(){return document.all(listboxID);}

    if(tb().disabled)
    return;

    var isDisplaying=false; if(lb().options.length==0)return; for(var i=lb().options.length;i>0;i--)
    lb().options[i]=new Option(lb().options[i-1].text,lb().options[i-1].value);

    lb().options[0]=new Option(tb().value,tb().value);

    var showlbTimerID=0;
    var hidelbTimerID=0;

    function ClearTimer()
    {
    if(hidelbTimerID!=0)
    {
    clearTimeout(hidelbTimerID);
    hidelbTimerID=0;
    }
    }

    function ShowLBSync()
    {
    var rect=tb().getBoundingClientRect();
    lb().style.left=rect.left-document.body.clientLeft+"px";
    lb().style.top=(rect.top-document.body.clientTop+tb().offsetHeight)+"px";
    lb().style.width=rect.right-rect.left+"px";
    lb().style.display="block";

    isDisplaying=true;
    ClearTimer();
    }
    function ShowLB()
    {
    if(showlbTimerID)
    return;
    ClearTimer();
    showlbTimerID=setTimeout(
    function(){
    showlbTimerID=0;
    ShowLBSync();
    }
    ,10);
    }
    function HideLBSync()
    {
    lb().style.display="none";
    isDisplaying=false;
    ClearTimer();
    }
    function HideLB()
    {
    if(hidelbTimerID)
    return;
    ClearTimer();
    hidelbTimerID=setTimeout(
    function(){
    hidelbTimerID=0;
    HideLBSync();
    }
    ,10);
    }
    function FocusToTextBox()
    {
    lb().selectedIndex=-1;
    HideLBSync();
    ClearTimer();
    tb().focus();
    }

    tb().attachEvent("onclick",function(){
    ShowLB();
    });
    tb().attachEvent("onblur",function(){
    HideLB();
    });
    tb().attachEvent("onkeydown",function(){
    if(event.keyCode==40)
    {
    document.selection.empty();
    ShowLBSync();
    lb().selectedIndex=0;
    lb().focus();
    ClearTimer();
    return event.returnValue=!(event.cancelBubble=true);
    }
    });

    lb().attachEvent("onfocus",function(){
    ShowLB();
    });
    lb().attachEvent("onblur",function(){
    HideLB();
    });
    lb().attachEvent("onclick",function(){
    if(lb().selectedIndex>-1)
    tb().value=lb()[lb().selectedIndex].text;
    FocusToTextBox();
    });
    lb().attachEvent("onkeydown",function(){
    if(event.keyCode==38&&lb().selectedIndex==0)
    {
    FocusToTextBox();
    }
    if(
    (
    event.keyCode==13||event.keyCode==9
    )
    &&lb().selectedIndex>-1)
    {
    tb().value=lb()[lb().selectedIndex].text;
    FocusToTextBox();
    return event.returnValue=!(event.cancelBubble=true);
    }
    if(event.keyCode==27)
    {
    FocusToTextBox();
    return event.returnValue=!(event.cancelBubble=true);
    }
    });
    }
      

  2.   

    ComboBoxLib.csusing System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.ComponentModel;
    using System.IO;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    namespace ComboBoxLib
    {
    [
    DefaultEvent("TextChanged"),
    DefaultProperty("Text"),

    ]
    public class ComboBox:WebControl,INamingContainer,IPostBackDataHandler
    {
    ListBox lb;
    public ComboBox():
    base(HtmlTextWriterTag.Input)
    {
    lb=new ListBox();
    lb.Style["position"]="absolute";
    lb.Style["display"]="none";
    lb.Style["filter"]="progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')";
    lb.EnableViewState=false;
    Controls.Add(lb);
    } ListItemCollection _coll=new ListItemCollection();
    [
    PersistenceMode(PersistenceMode.InnerProperty),
    DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
    ]
    public ListItemCollection Items
    {
    get
    {
    return _coll;
    }
    } [
    DefaultValue(false),
    ]
    public bool AutoPostBack
    {
    get
    {
    return ViewState["AutoPostBack"]==null?false:true;
    }
    set
    {
    if(value)
    ViewState["AutoPostBack"]=0;
    else
    ViewState.Remove("AutoPostBack");
    }
    }
    [
    DefaultValue(""),
    ]
    public string Text
    {
    get
    {
    return Convert.ToString(ViewState["Text"]);
    }
    set
    {
    ViewState["Text"]=value;
    }
    } [
    DefaultValue(0),
    ]
    public int MaxLength
    {
    get
    {
    object o=ViewState["MaxLength"];
    return o==null?0:(int)o;
    }
    set
    {
    ViewState["MaxLength"]=value;
    }
    } static private string _scriptBlock;
    static protected string ScriptBlock
    {
    get
    {
    if(_scriptBlock==null)
    {
    using(Stream s=typeof(ComboBox).Assembly.GetManifestResourceStream(typeof(ComboBox).FullName+".js"))
    {
    using(StreamReader sr=new StreamReader(s))
    {
    _scriptBlock="<script language=jscript>"+sr.ReadToEnd()+"</script>";
    }
    }
    }
    return _scriptBlock;
    }
    }
    protected override void OnPreRender(System.EventArgs e)
    {
    base.OnPreRender(e); lb.Items.Clear();
    for(int i=0;i<Items.Count;i++)
    lb.Items.Add(Items[i].Text); Page.RegisterStartupScript(this.UniqueID,"<script>LostinetSampleComboBox_Init('"+this.UniqueID+"','"+lb.UniqueID+"');</script>"); string key=typeof(ComboBox).FullName;
    if(!Page.IsClientScriptBlockRegistered(key))
    {
    Page.RegisterClientScriptBlock(key,ScriptBlock);
    }
    } protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
    {
    base.AddAttributesToRender(writer);
    writer.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);
    writer.AddAttribute(HtmlTextWriterAttribute.Value,this.Text,true);
    writer.AddAttribute("AutoComplete","Off");
    if(MaxLength>0)
    writer.AddAttribute(HtmlTextWriterAttribute.Maxlength,MaxLength.ToString(),false);
    if(this.AutoPostBack)
    writer.AddAttribute(HtmlTextWriterAttribute.Onchange,Page.GetPostBackEventReference(this),false);
    } public void RaisePostDataChangedEvent()
    {
    OnTextChanged(EventArgs.Empty);
    } public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
    {
    string v=postCollection[postDataKey];
    if(v==Text)
    return false;
    Text=v;
    return true;
    } public event EventHandler TextChanged; protected virtual void OnTextChanged(EventArgs e)
    {
    if(TextChanged!=null)
    TextChanged(this,e);
    } protected override void LoadViewState(object savedState)
    {
    Pair p=(Pair)savedState;
    base.LoadViewState(p.First);
    ((IStateManager)_coll).LoadViewState(p.Second);
    } protected override object SaveViewState()
    {
    return new Pair(base.SaveViewState(),((IStateManager)_coll).SaveViewState());
    } protected override void TrackViewState()
    {
    base.TrackViewState();
    ((IStateManager)_coll).TrackViewState();
    }
    }
    }
      

  3.   

    去下载一个吧..这样的WEB控件有许多的..可以到孟子E章的站点上找找
    dotnet.aspx.cc