代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.NET
】
google suggest 下拉菜单(asp.net版本)
作者:
刺猬拥抱
/ 发布于
2016/9/6
/
610
1.suggest.js 复制代码保存为suggest.js在你需要的页面引用就行了 //建立跨浏览器的xmlHttp对象引用 var xmlHttp; var k=-1; var success; try { xmlHttp=new XMLHttpRequest(); success= true; } catch(e) { var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP' ); var success = false; for(var i=0;i<XMLHTTP_IDS.length&&!success;i++) { try { xmlHttp = new ActiveXObject(XMLHTTP_IDS[i]); success = true; } catch (e) { success = false; } } if (!success) { throw new Error('Unable to create XMLHttpRequest.'); } } //得到页面使用的引用变量 function initVars() { inputField = document.getElementById("FrmChangshang"); nameTable = document.getElementById("name_table"); completeDiv = document.getElementById("popup"); nameTableBody = document.getElementById("name_table_body"); document.getElementById("popup").style.display="block"; } //ajax前台触发函数 function findNames(event) { var keyc=(window.navigator.appName=="Microsoft Internet Explorer")?event.keyCode:event.which; if(keyc!=40 && keyc!=38) { if (inputField.value.length > 0) { var url = "SearchCompany.aspx?cname=" + escape(inputField.value) +"&rnd="+Math.random().toString(); xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = callback; xmlHttp.send(null); } else { clearNames(); } } } //ajax回调函数 function callback() { var names; if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { try { names=xmlHttp.responseXML.getElementsByTagName("name"); } catch(e) { completeDiv.style.display="none"; clearNames(); } k=-1;//重新从第一项开始往下选择 setNames(names); } else if (xmlHttp.status == 204) { clearNames(); } } } //弹出层位置确定函数 function divsOffset() { var inputWidth=inputField.offsetWidth; var inputHeight=inputField.offsetHeight; var inputTop=inputField.offsetTop; var inputLeft=inputField.offsetLeft; nameTable.style.width=inputWidth+"px"; completeDiv.style.width=inputWidth+"px"; completeDiv.style.top=(getTop(inputField)+inputHeight)+"px"; completeDiv.style.left=getLeft(inputField)+"px"; completeDiv.style.border = "#817f82 1px solid"; completeDiv.style.position = "absolute"; //获取元素的绝对纵坐标 function getTop(e){ var offset=e.offsetTop; if(e.offsetParent!=null) offset+=getTop(e.offsetParent); return offset; } //获取元素的横坐标 function getLeft(e){ var offset=e.offsetLeft; if(e.offsetParent!=null) offset+=getLeft(e.offsetParent); return offset; } //alert(inputWidth+"----"+inputwidth+"----"+inputtopleft+"----"+inputtop); } //将返回数据添加到表格函数 function setNames(the_names) { clearNames(); divsOffset(); for(var i=0;i<the_names.length;i++) { var nextNode=the_names[i].firstChild.nodeValue; var row =document.createElement("tr"); var cell =document.createElement("td"); cell.onmouseout = function() {this.className="mouseOut";}; cell.onmouseover =(function(tdi) {return function(){k=tdi;setStyle(k);}})(i); cell.setAttribute("bgcolor","#FFFAFA"); cell.setAttribute("border","0"); cell.setAttribute("style","font-size:15px"); cell.onclick = function() { populateName(this); }; //将nextNode添加到td var txtName = document.createTextNode(nextNode); cell.appendChild(txtName); row.appendChild(cell); nameTableBody.appendChild(row); } } //点击选中一条数据,添加到inputField function populateName(cell) { //填充数据到web页面,cell---->td对象 inputField.value = cell.firstChild.nodeValue; clearNames(); } //设置样式 function setStyle(num) { var tBody = nameTableBody.getElementsByTagName("td"); for(var i=0;i<tBody.length;i++) { if(i>=0 && i<tBody.length&&i==num) { tBody[i].className="mouseOver"; } else { tBody[i].className="mouseOut"; } } } //获取键盘上下键 function updown(e) { var tBody = nameTableBody.getElementsByTagName("td"); var keyc=(window.navigator.appName=="Microsoft Internet Explorer")?e.keyCode:e.which; if(tBody==null) return; if(keyc==40) { k++; if(k>=tBody.length) { k=0; } inputField.value=tBody[k].firstChild.nodeValue; } else if(keyc==38) { k--; if(k<=-1) { k=tBody.length-1; } inputField.value=tBody[k].firstChild.nodeValue; } setStyle(k); } //清除列表数组 function clearNames() { var ind = nameTableBody.childNodes.length; var completeDiv = document.getElementById("popup"); for (var i = ind - 1; i >= 0 ; i--) { nameTableBody.removeChild(nameTableBody.childNodes[i]); } completeDiv.style.border = "none"; } 2.前台页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="searchcom.aspx.cs" Inherits="member_searchcom" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <style type="text/css"> <!-- .mouseOut { font-size:15px; background: #ffffff; color: #000000; } .mouseOver { font-size:15px; background: #3366cc; color: #ffffff; cursor: pointer; } --> </style> <title>无标题页</title> <script language="javascript" src="../js/suggest.js" type="text/javascript"></script> </head> <body onload="initVars();"> <form id="form1" runat="server"> <div> <table> <tr> <td> </td> <td> </td> <td> </td> </tr> <tr> <td > </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td><input id="FrmChangshang" name="FrmChangshang" type="text" style="width: 320px;" maxlength="20" onkeyup="findNames(event);" onkeydown="updown(event);" onclick="findNames(event);"/> <div id="popup"> <table id="name_table" bgcolor="#FFFAFA" border="0" cellspacing="0" cellpadding="3px"> <tbody id="name_table_body"></tbody> </table> </div> </td> </tr> </table> </div> </form> </body> </html> 3.后台处理页面 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using CaiHong.DBUtility; public partial class member_SearchCompany : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //获取你自己的数据库连接连接。数据库调用,采用了SqlHelper,要想使用下面代码,下载SqlHelper到你自己定义文件夹,然后添加引用。否在请自行编写数据库访问代码。 string strconn = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString; string keyword = Request.QueryString["cname"]; string sql = "select Member_TrueName from users where Member_TrueName like '%" + @keyword + "%' and Member_ShenFen=1 order by id desc"; SqlParameter spr = new SqlParameter("@keyword", SqlDbType.NVarChar, 50); spr.Value = keyword; Response.ContentType = "text/xml"; Response.Write("<?xml version=/"1.0/" encoding=/"GB2312/"?>"); Response.Write("<response>"); using (SqlConnection sqlconn = new SqlConnection(strconn)) { sqlconn.Open(); SqlDataReader dre = SqlHelper.ExecuteReader(sqlconn, CommandType.Text, sql); if (dre.HasRows) { while (dre.Read()) { Response.Write("<content>"); Response.Write("<name>" + dre.GetString(0) + "</name>"); Response.Write("</content>"); } } else { Response.Write("<content>"); Response.Write("<name>IsKong</name>"); Response.Write("</content>"); } Response.Write("</response>"); dre.Close(); } } }
试试其它关键字
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
刺猬拥抱
贡献的其它代码
(
14
)
.
如何获取视频的总时长
.
敏感字符串处理工具类
.
字符串字典序排序
.
实现文件夹及文件压缩,并实现下载(二)
.
DataTable转Json Json转DataTable
.
google suggest 下拉菜单(asp.net版本)
.
在SQL2008查找某数据库中的列是否存在某个值
.
WebApiClient
.
json内查询
.
repeater 当前行号
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3