根据"AJAX基本应用之:根据输入内容自动填充下拉框。(ASP.NET版)[转] ",更改的提示,可用方向盘上下选择需要的内容,文本框无记录时,按删除键自动进行提示
前台代码
<%
@ Page language
=
"
c#
"
Codebehind
=
"
WebForm2.aspx.cs
"
AutoEventWireup
=
"
false
"
Inherits
=
"
ajax10.WebForm2
"
%>
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.0 Transitional//EN
"
>
<
HTML
>
<
HEAD
>
<
title
>
WebForm2
</
title
>
<
meta content
=
"
Microsoft Visual Studio .NET 7.1
"
name
=
"
GENERATOR
"
>
<
meta content
=
"
C#
"
name
=
"
CODE_LANGUAGE
"
>
<
meta content
=
"
JavaScript
"
name
=
"
vs_defaultClientScript
"
>
<
meta content
=
"
http://schemas.microsoft.com/intellisense/ie5
"
name
=
"
vs_targetSchema
"
>
<
script language
=
"
javascript
"
>
var index,which;
function Text1_onkeyup(str)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
var s=document.getElementById(str).getBoundingClientRect();//得控件绝对位置 ;getElementById(str)查找对象
document.getElementById("div1").style.left=s.left;
document.getElementById("div1").style.top=s.bottom;
document.getElementById("div1").style.width=document.getElementById(str).style.width;
switch (window.event.keyCode)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
case 13: //回车
document.getElementById("div1").style.visibility="hidden";
break;
case 40://向右箭头
case 39: //向下箭头
if (index < document.getElementById("div1").childNodes.length)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
index=index+1;
}
for (i=1;i<=document.getElementById("div1").childNodes.length;i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if (i==index)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
document.getElementById(str).value=document.getElementById("div1").childNodes[index-1].innerText;//取值 ; innerHTML:取代码
document.getElementById("div1").childNodes[index-1].style.backgroundColor="lightblue";
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
document.getElementById("div1").childNodes[i-1].style.backgroundColor="white";//背景变白
}
}
break;
case 38://向左箭头
case 37://向上箭头
if (index>1)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
index=index-1;
}
for (i=1;i<=document.getElementById("div1").childNodes.length;i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if (i==index)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
document.getElementById(str).value=document.getElementById("div1").childNodes[index-1].innerText;//.substr(1);
document.getElementById("div1").childNodes[index-1].style.backgroundColor="lightblue";
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
document.getElementById("div1").childNodes[i-1].style.backgroundColor="white";
}
}
break;
default:
index=0;
which=str;
if(str=="TextBox1")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
stuInfoView.getMatchedStuId(document.getElementById(str).value,getGG_callBack);
}
if(str=="TextBox2")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
stuInfoView.getB_KH_name(document.getElementById(str).value,getGG_callBack);
}
if(str=="TextBox3")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
stuInfoView.getC_CP2_name(document.getElementById(str).value,getGG_callBack);
}
}
}
String.prototype.Trim
=
function()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
return this.replace(/(^s*)|(s*$)/g, "");
}
function getGG_callBack(response)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if(response.value.length != 0)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
var ds = response.value;
var s;
s="";
for(var i=0;i<response.value.length;++i)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
var sd;
if(which=="TextBox1")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
s=s + "<div style="" class="gotTitle" οnmοuseοver="javascript:this.style.backgroundColor='lightblue'" οnclick="return gotTitle_onclick()">" + response.value[i].Trim() + "</div>";
}
if(which=="TextBox2")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
s=s + "<div style="" class="gotTitle" οnmοuseοver="javascript:this.style.backgroundColor='lightblue'" οnmοuseοut="javascript:this.style.backgroundColor='white'" οnclick="return gotTitle_onclick()">" + response.value[i].Trim() + "</div>";
}
if(which=="TextBox3")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
s=s + "<div style="" class="gotTitle" οnmοuseοver="javascript:this.style.backgroundColor='lightblue'" οnclick="return gotTitle_onclick()">" + response.value[i].Trim() + "</div>";
}
}
document.getElementById("div1").innerHTML=s;
document.getElementById("div1").style.visibility="visible";
}
return
}
function gotTitle_onclick()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if (window.event.srcElement.className="gotTitle")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
document.getElementById(str).value=window.event.srcElement.innerText;//.substr(1);
document.getElementById("div1").style.visibility="hidden";
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
function gotTitle_onblur()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
document.getElementById("div1").style.visibility="hidden";
}
</
script
>
</
HEAD
>
<
body MS_POSITIONING
=
"
GridLayout
"
>
<
form id
=
"
Form1
"
method
=
"
post
"
runat
=
"
server
"
>
<
FONT face
=
"
宋体
"
>
<
div
class
=
"
list
"
id
=
"
div1
"
onblur
=
"
return gotTitle_onblur()
"
style
=
"
Z-INDEX: 103; LEFT: 8px; POSITION: absolute; TOP: 8px; BACKGROUND-COLOR: #7d84b9
"
></
div
>
<
asp:textbox id
=
"
TextBox1
"
style
=
"
Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 216px
"
runat
=
"
server
"
></
asp:textbox
><
asp:textbox id
=
"
TextBox2
"
style
=
"
Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 176px
"
runat
=
"
server
"
></
asp:textbox
>
<
asp:TextBox id
=
"
TextBox3
"
style
=
"
Z-INDEX: 104; LEFT: 112px; POSITION: absolute; TOP: 136px
"
runat
=
"
server
"
></
asp:TextBox
>
<
asp:TextBox id
=
"
TextBox4
"
style
=
"
Z-INDEX: 105; LEFT: 112px; POSITION: absolute; TOP: 96px
"
runat
=
"
server
"
></
asp:TextBox
>
<
asp:TextBox id
=
"
TextBox5
"
style
=
"
Z-INDEX: 106; LEFT: 112px; POSITION: absolute; TOP: 56px
"
runat
=
"
server
"
></
asp:TextBox
></
FONT
></
form
>
</
body
>
</
HTML
>
后台代码
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
namespace
ajax10
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
protected System.Web.UI.WebControls.TextBox TextBox2;
protected System.Web.UI.WebControls.TextBox TextBox3;
protected System.Web.UI.WebControls.TextBox TextBox4;
protected System.Web.UI.WebControls.TextBox TextBox5;
protected System.Web.UI.WebControls.TextBox TextBox1;
private void Page_Load(object sender, System.EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(stuInfoView));
this.TextBox1.Attributes.Add("onkeyup","Text1_onkeyup('TextBox1');");
this.TextBox1.Attributes.Add("onblur","gotTitle_onblur();");
this.TextBox2.Attributes.Add("onkeyup","Text1_onkeyup('TextBox2');");
this.TextBox2.Attributes.Add("onblur","gotTitle_onblur();");
this.TextBox3.Attributes.Add("onkeyup","Text1_onkeyup('TextBox3');");
this.TextBox3.Attributes.Add("onblur","gotTitle_onblur();");
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7ff8d92cded7e0ce15e7ca1acc870052.gif)
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
this.Load += new System.EventHandler(this.Page_Load);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
#endregion
}
}
AJAX调用类
using
System;
using
System.Text;
using
System.Data;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
namespace
ajax10
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// stuInfoView 的摘要说明。
/// </summary>
public class stuInfoView
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
public stuInfoView()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//
// TODO: 在此处添加构造函数逻辑
//
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// 读取AJAX表中数据
/// </summary>
/// <param name="stuId"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
public static string[] getMatchedStuId(string stuId)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
DataSet ds = INC.DB.Query("select name from ajax ");
DataRow[] drs = ds.Tables[0].Select("name like '"+stuId+"%'");
if(drs != null)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
string[] result = new string[drs.Length];
for(int i=0;i<drs.Length;i++)
result[i] = Convert.ToString(drs[i]["name"]);
return result;
}
return null;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// 读取客户简称
/// </summary>
/// <param name="kh_jc"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
public static string[] getB_KH_name(string kh_jc)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
DataSet ds = INC.DB.Query("select kh_jc from b_kh where kh_jc like '"+kh_jc+"%'");
DataRow[] drs = ds.Tables[0].Select("kh_jc like '"+kh_jc+"%'");
if(drs != null)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
string[] result = new string[drs.Length];
for(int i=0;i<drs.Length;i++)
result[i] = Convert.ToString(drs[i]["kh_jc"]);
return result;
}
return null;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//// <summary>
/// 读取成品的名称(聚合查询)
/// </summary>
/// <param name="cp_name"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
public static string[] getC_CP2_name(string cp_name)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
StringBuilder strSql=new StringBuilder();
strSql.Append("select kh_jc from c_cp2 ");
strSql.Append(" where CP_NAME like %");
strSql.Append(cp_name);
strSql.Append("% ");
strSql.Append("group BY CP_NAME ");
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DataSet ds = INC.DB.Query(strSql.ToString());
DataRow[] drs = ds.Tables[0].Select("cp_name like '"+cp_name+"%'");
if(drs != null)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
string[] result = new string[drs.Length];
for(int i=0;i<drs.Length;i++)
result[i] = Convert.ToString(drs[i]["cp_name"]);
return result;
}
return null;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
}