JS代码:
//创建一个xmlhttp对象 function createXmlHttp() { var xmlHttp; // 检测MSXMLHTTP版本,为了兼容IE各个版本 var activeKey = new Array("MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"); if(window.ActiveXObject) { for(var i=0;i<activeKey.length;i++) { try { xmlHttp = new ActiveXObject(activeKey[i]); if(xmlHttp!=null) return xmlHttp; } catch(error) { throw new Error("您的浏览器版本过低,请更新浏览器"); } } } else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } return xmlHttp; }
var queryField; var globalDiv; var divName="globalDiv"; var xmlDoc; var xmlhttp=null; var array=new Array();
//初始化函数 function ini(textid) { queryField=document.getElementById(textid); queryField.οnkeyup=keyhand; } //松开键盘事件 function keyhand() { //var textvalue=document.getElementById("Text1").value; var textvalue=queryField.value; //判断是否按的是向上 向下键 或tab键 回车键 if(event.keyCode!=13&event.keyCode!=9&event.keyCode!=38&event.keyCode!=40) { if(textvalue.length>0) { postRequest(textvalue); } else { getDiv(divName); hiddenDiv(); document.getElementById("ddlCengWei").options.length=0; document.getElementById("ddlCSRQ").options.length=0; } } }
//与服务端通信 function postRequest(obj) { var URL="Server.aspx?action=search&data="+obj; xmlhttp = createXmlHttp(); xmlhttp.Open("POST",URL, true); //响应服务端函数 xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4) { if(xmlhttp.status==200) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.loadXML(xmlhttp.responseText); array.length=0; //获得服务器返回的结果 var res= xmlDoc.documentElement.selectNodes("result"); for(var i=0;i<res.length;i++) { array[i]=res[i].text; } if(array.length>0) { getDiv(divName); showQueryDiv(array); } else { getDiv(divName); hiddenDiv(); } } } } xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=GB2312"); xmlhttp.Send(null); } //创建显示DIV function getDiv(divId) { if(!globalDiv) { var newNode=document.createElement("div"); newNode.setAttribute("id",divId); document.body.appendChild(newNode); globalDiv=document.getElementById(divId); } var x=queryField.offsetLeft; var y=queryField.offsetTop+queryField.offsetHeight; var parent=queryField; while(parent.offsetParent) { parent=parent.offsetParent; x+=parent.offsetLeft; y+=parent.offsetTop; } globalDiv.style.border="2px solid #ccc"; globalDiv.style.position="absolute"; globalDiv.style.left=x+"px"; globalDiv.style.top=y+"px"; globalDiv.style.width="100px"; globalDiv.style.cursor="default"; globalDiv.style.color="Black"; return globalDiv; } //显示查询数据 function showQueryDiv(resultArray) { var parentDiv=getDiv(divName); parentDiv.style.display="block"; while(parentDiv.childNodes.length>0) { parentDiv.removeChild(parentDiv.childNodes[0]); } for(i=0;i<resultArray.length;i++) { sonDiv=document.createElement("div"); sonDiv.innerHTML=resultArray[i]; sonDiv.οnmοusemοve=divMove; sonDiv.οnmοuseοut=divout; sonDiv.οnmοusedοwn=divdown; //sonDiv.οnkeydοwn=beKeyDown; parentDiv.appendChild(sonDiv); } }
function divout() { var mydiv=this; mydiv.style.backgroundColor=""; } //鼠标移到选项的效果 function divMove() { var mydiv=this; mydiv.style.backgroundColor="Blue"; } //鼠标点击事件 function divdown() { var mydiv=this; queryField.value=mydiv.innerHTML; globalDiv.style.display="none"; } //没有相应数据隐藏DIV function hiddenDiv() { globalDiv.style.display="none"; globalDiv.innerHTML=""; }
//方向键接收函数 function beKeyDown() { //往向下键 if (event.keyCode==40) { divMove(); } //往向上按 if (event.keyCode==38) { divMove(); } //按回车或者TAB if (event.keyCode==13||event.keyCode==9) { divdown(); } }
在页面onload事件中添加引用:<body οnlοad="ini('txtJingHao');">
<asp:TextBox ID="txtJingHao" runat="server" Width="100px" style="z-index: 100;" ><asp:TextBox>
Server.aspx.cs 代码:
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request.QueryString["action"])) { string str = Request.QueryString["action"].ToString(); switch (Request.QueryString["action"].ToString()) { case "search": //查询 GetResult(); break; } } }
/// <summary> /// 查询 /// </summary> private void GetResult() { string res = ""; ProjectInfoBLL PIBll = new ProjectInfoBLL(); string data = Request.QueryString["data"].ToString(); DataTable objTable = PIBll.GetProjectInfosByJingHao(data); int rowCount = objTable.Rows.Count; //输出数据 res = "<root>"; if (rowCount > 0) { for (int i = 0; i < rowCount; i++) { res += "<result>"; res += objTable.Rows[i][0].ToString().Trim(); res += "</result>"; } } res += "</root>"; Response.Clear(); Response.ContentType = "text/xml"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Response.Write("<?xml version=/"1.0/" encoding=/"GB2312/" ?>"); Response.Write(res); Response.End(); }