asp.net和ajax实现智能搜索功能代码

第一步,先做好搜索页面
复制代码 代码如下:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>



无标题页










搜索标题








第二步,添加返回搜索结果的页面,该页面由于不用在客户端显示,所以就不用做界面。
复制代码 代码如下:

Imports System.Text
Partial Class Search
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim searchContent As String = Request("content").ToString  '获取搜索内容
Dim searchResult As New StringBuilder
If IsNumeric(searchContent) Then '判断是否为数字,输入不同的内容
searchResult.Append("
1111
")
searchResult.Append("
2222
")
searchResult.Append("
2222
")
Else
searchResult.Append("
aaaa
")
searchResult.Append("
bbbb
")
searchResult.Append("
cccc
")
End If
Response.Write(searchResult.ToString) '向客户端发送结果
Response.End() '关闭客户端输出流
End Sub
End Class

第三步就是最关键的一步了
复制代码 代码如下:

// JScript 文件
var xmlHttp;
function cratexmlHttpRequest()
{
//判断是否为IE浏览器
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new window.XMLHttpRequest();
}
}
//启动对页面的请求
function startRequest(content)
{
cratexmlHttpRequest();
//设置请求状态变化调用的方法
xmlHttp.onreadystatechange=handleState;
//建立对服务器的调用
var url="Search.aspx?content="+escape(content); '发送页面url
xmlHttp.open("get",url,true);
xmlHttp.send(null);
}
function handleState()
{
try{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
var data=xmlHttp.responseText; '得到搜索结果
var result=document.getElementById("result");
var stockListDiv=document.getElementById("stockListDiv");
if(data=="")            '如果搜索结果为空,不显示下拉框
{
result.style.display="none";
stockListDiv.innerHTML="";
}
else
{
stockListDiv.innerHTML=data;   '显示下拉框
result.style.display="block";
}
}
}
}
catch(error)
{error.message}
}

最后实现的效果如下:
asp.net和ajax实现智能搜索功能代码_第1张图片

你可能感兴趣的:(asp.net和ajax实现智能搜索功能代码)