仿百度下拉提示框代码

 仿百度搜索下拉提示框代码

数据库中以like方式查询数据库

1.下拉框样式,可根据需要进行相应的修改

<style type="text/css">

       .message_hover{

            background-color:#475c9d;

            padding:2px 6px 2px 6px;

            height:25px;

            cursor:pointer;

            color:#ffffff;

       }

       .message{

            background-color:#ffffff;

            padding:2px 6px 2px 6px;

            height:25px;

            cursor:default;

       }

       #showMessage{

            position:absolute;

            border:1px solid #000000;

            background-color:#ffffff;

            width:188px;

            *width:190px;

            text-align:left;

            display:none;

       }

</style>

2. js方法这里只需要把<%=txtAccount.ClientID %>改成你的输入框就行了,GetSalerID.aspx为数据请求页面,也可以是一般处理程序。

<script type="text/javascript">

       var xmlHttp;

       function sendRequest(event) {

            varkeyCode;

            vare = event ? event : (window.event ? window.event : null);

            keyCode = e.keyCode || e.which ||e.charCode;

            if(keyCode != 38 && keyCode != 40 && keyCode != 37 &&keyCode != 39 && keyCode != 13) {//38为上方向键,40为下方向键,37为左方向键,39为右方向键,13为回车键

                varenterpriseName = document.getElementById("<%=txtAccount.ClientID%>").value;

                try{

                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

                } catch(new_ieerror) {

                    try {

                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

                    } catch(ieerror) {

                        xmlHttp = false;

                    }

                }

                if(!xmlHttp && typeof xmlHttp != "undefined") {

                    try{

                        xmlHttp = new XMLHttpRequest();

                    } catch(error) {

                        xmlHttp = false;

                    }

                }

                if(xmlHttp) {

                    try{

                        var para = "SalerID="+ encodeURI(enterpriseName);

                        var url = "GetSalerID.aspx?"+ para;

                       xmlHttp.onreadystatechange = responseReq;

                        xmlHttp.open("GET", url, true);

                        xmlHttp.send(null);

                    } catch(con_error) {

                        alert("不能连接服务器," + con_error);

                    }

                } else{

                    alert("创建XMLHttpRequest对象失败!");

                }

            } elseif (keyCode == 38) {

                varflag = false;

                varresponseText = xmlHttp.responseText;

                if(responseText != null && responseText!= "") {

                    varresponseArray = new Array();

                    responseArray =responseText.split(";");

                    for(var i = 0; i < responseArray.length; i++) {

                        if (document.getElementById("item"+ i).className == "message_hover"){

                           document.getElementById("item"+ i).className = "message";

                            if (i == 0) {

                               document.getElementById("item"+ (responseArray.length - 1)).className = "message_hover";

                            }

                            else {

                               document.getElementById("item"+ (i - 1)).className = "message_hover";

                            }

                            flag = true;

                            break;

                        }

                    }

                    if(!flag) {

                       document.getElementById("item"+ (responseArray.length - 1)).className = "message_hover";

                    }

                }

           } else if (keyCode == 40) {

                varflag = false;

                varresponseText = xmlHttp.responseText;

                if(responseText != null && responseText!= "") {

                    varresponseArray = new Array();

                    responseArray =responseText.split(";");

                    for(var i = 0; i < responseArray.length; i++) {

                        if (document.getElementById("item"+ i).className == "message_hover"){

                            document.getElementById("item" + i).className = "message";

                            if (i == responseArray.length - 1) {

                               document.getElementById("item0").className= "message_hover";

                            }

                           else {

                               document.getElementById("item"+ (i + 1)).className = "message_hover";

                            }

                            flag = true;

                            break;

                        }

                    }

                    if(!flag) {

                       document.getElementById("item0").className= "message_hover";

                    }

                }

            } elseif (keyCode == 13) {

               varresponseText = xmlHttp.responseText;

                if(responseText != null && responseText!= "") {

                    varresponseArray = responseText.split(";");

                    for(var i = 0; i < responseArray.length; i++) {

                       if (document.getElementById("item"+ i).className == "message_hover"){

                            var enterprise_node = document.getElementById("<%=txtAccount.ClientID %>");

                           enterprise_node.value = document.getElementById("item"+ i).innerHTML;

                            var message_text = document.getElementById("showMessage");

                           message_text.innerHTML = "";

                            message_text.style.display = "none";

                            break;

                        }

                    }

                }

            }

       }

       function responseReq() {

            if(xmlHttp.readyState == 4) {

               var message_text = document.getElementById("showMessage");

                if(xmlHttp.status == 200) {

                    varenterpriseName = document.getElementById("<%=txtAccount.ClientID%>").value;

                    if(enterpriseName != "") {

                        message_text.innerHTML= "";

                        var responseText = xmlHttp.responseText;

                        if (responseText != null&& responseText != "") {

                           message_text.style.display = "block";

                            var responseArray = newArray();

                            responseArray =responseText.split(";");

                            for (var i = 0; i< responseArray.length; i++) {

                                var showArray = newArray();

                                showArray =responseArray[i].split(",");

                                var str = "<divonmouseover='javascript:messageover(this);' ";

                               str += "onmouseout='javascript:messageout(this);' ";

                                str += "onclick='javascript:setEnterpriseName(this.innerHTML);'";

                                str += " class='message' id='item" +showArray[0] + "'>" +showArray[1] + "</div>";

                               message_text.innerHTML += str;

                            }

                        } else {

                           message_text.innerHTML = "";

                            message_text.style.display = "none";

                        }

                    } else{

                        message_text.innerHTML= "";

                       message_text.style.display = "none";

                    }

                } else{

                    message_text.innerHTML = "";

                    message_text.style.display= "none";

                }

            }

       }

       function messageover(div_style) {

            div_style.className = "message_hover";

       }

       functionmessageout(div_style) {

            div_style.className = "message";

       }

       function setEnterpriseName(context) {

            varenterprise_node = document.getElementById("<%=txtAccount.ClientID%>");

            enterprise_node.value = context;

            varmessage_text = document.getElementById("showMessage");

            message_text.innerHTML = "";

            message_text.style.display = "none";

       }

    </script>

 

3.在输入框控件(可以是input或是服务器控件textbox)中加入onkeyup="sendRequest(event);" autocomplete="off"

4.在输入框下方插入用于显示提示的div,根据实际情况修改样式 <div id="showMessage"style="line-height:25px;margin-top:-8px;"></div>

 

数据请求页面的代码,

  protected voidPage_Load(object sender, EventArgs e)

       {

            stringSalerID = null;

            if(Request["SalerID"] != null && Request["SalerID"].Trim()!= "")

            {

                SalerID = Request["SalerID"].Trim();

            }

            if(SalerID != null && SalerID != "")

            {

                SalerInfoBO_enterpriseBaseBO = BOProxyFactory.Create<SalerInfoBO>();//这里改成你相应的获取数据的方法

                DataSetds = _enterpriseBaseBO.GetSalerID(SalerID);

                DataTabledt = ds.Tables[0];

                stringSalerList = "";

                if(dt.Rows.Count > 0)

                {

                    for(int i = 0; i < dt.Rows.Count; i++)

                   {

                     //这里改成你要用的字段dt.Rows[i][1]

                        SalerList += i + "," + dt.Rows[i][1].ToString() + ";";

                    }

                    SalerList =SalerList.Substring(0, SalerList.LastIndexOf(';'));

                }

                Response.Write(SalerList);

            }

            else

            {

                Response.Write("");

            }

            Response.End();

        }

Bll层和DAL层的代码自己定吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值