您的位置:首页 > Web前端 > JavaScript

Handler和JavaScript实现异步请求

2009-06-27 15:53 751 查看
JS代码:

nction loadAsyncData(ur, id) {
var xmlHttp;
if (!ur || !id) {
return;
}
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp != null) {
try {
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById(id).innerHTML = xmlHttp.responseText;
}

Hander代码:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Text;

public class Handler : IHttpHandler {

public void ProcessRequest (HttpContext context) {

if (!string.IsNullOrEmpty(context.Request.QueryString["name"]))
{
System.Collections.Specialized.NameValueCollection gb2312 = HttpUtility.ParseQueryString(context.Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312"));

string querystring = gb2312["name"];

querystring = HttpUtility.UrlEncode(querystring, Encoding.GetEncoding("gb2312"));

string str = "";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["xu"].ConnectionString))
{

SqlCommand com = new SqlCommand("select top 10 * from ptype where category_name like '%" + querystring + "%'", con);

DataSet ds = new DataSet();

SqlDataAdapter da = new SqlDataAdapter(com);

da.Fill(ds);

if (ds.Tables[0].Rows.Count < 1)
{
context.Response.Write("Sorry! ");
}
else
{
str += "<ul>";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
str += "<li>";
str += ds.Tables[0].Rows[i]["category_name"].ToString();
str += "</li>";
}

str += "</ul>";

context.Response.Write(str);
//ds.Tables[0].Rows[0][1].ToString());
}
}
}

}

public bool IsReusable {
get {
return false;
}
}

}

};
xmlHttp.open("GET", ur, true);
xmlHttp.send(null);
}
catch (e) {
alert(e);
}
}
}

HTML代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Regist.aspx.cs" Inherits="Regist" %>

<!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">
<title></title>
<script src="Ajax.js "language="javascript" type="text/javascript"></script>

<script language ="javascript" type ="text/javascript">
function AsynData() {
var urlq = 'Handler.ashx?name=' + document.getElementById("Text1").value;

loadAsyncData(urlq, 'demo');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Text1" type="text" onblur=" AsynData();" />
<div id="demo"></div>
</div>
</form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: