1.创建WEB Application工程WebAjax。
2.建立目录文件AjaxCommon.js如下:
// 声明XmlHttpRequest成员变量
var xmlHttpReq_Obj = null;
// 初始化获取XmlHttpRequest对象
///<param>handler :回调函数名</param>
function GetXmlHttpObject(handler) {
var xmlHttpObj = null;
try {
// Microsoft
xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
// 设置回调函数
if(xmlHttpObj != null) {
xmlHttpObj.onreadystatechange = handler;
}
} catch (e){
try
{
// Mozilla | Netscape | Safari
xmlHttpObj = new XMLHttpRequest();
// 设置回调函数
if(xmlHttpObj != null) {
xmlHttpObj.onload = handler;
xmlHttpObj.onerror = handler;
}
} catch (e) {
}
}
if(xmlHttpObj == null) {
alert("Error initialing XMLHttpRequest!");
}
return xmlHttpObj;
}
// 发送请求
///<param>xmlHttpObj :XmlHttpObject对象</param>
///<param>url :请求url</param>
function SendXmlHttpRequest(xmlHttpObj,url) ......
1.创建WEB Application工程WebAjax。
2.建立目录文件AjaxCommon.js如下:
// 声明XmlHttpRequest成员变量
var xmlHttpReq_Obj = null;
// 初始化获取XmlHttpRequest对象
///<param>handler :回调函数名</param>
function GetXmlHttpObject(handler) {
var xmlHttpObj = null;
try {
// Microsoft
xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");
// 设置回调函数
if(xmlHttpObj != null) {
xmlHttpObj.onreadystatechange = handler;
}
} catch (e){
try
{
// Mozilla | Netscape | Safari
xmlHttpObj = new XMLHttpRequest();
// 设置回调函数
if(xmlHttpObj != null) {
xmlHttpObj.onload = handler;
xmlHttpObj.onerror = handler;
}
} catch (e) {
}
}
if(xmlHttpObj == null) {
alert("Error initialing XMLHttpRequest!");
}
return xmlHttpObj;
}
// 发送请求
///<param>xmlHttpObj :XmlHttpObject对象</param>
///<param>url :请求url</param>
function SendXmlHttpRequest(xmlHttpObj,url) ......
AJAX类
// AJAX类
function AJAXRequest() {
var xmlObj = false;
var CBfunc,ObjSelf;
ObjSelf=this;
try { xmlObj=new XMLHttpRequest; }
catch(e) {
try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
catch(e2) {
try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e3) { xmlObj=false; }
}
}
if (!xmlObj) return false;
this.method="POST";
this.url;
this.async=true;
this.content="";
this.callback=function(cbobj) {return;}
this.send=function() {
if(!this.method||!this.url||!this.async) return false;
xmlObj.open (this.method, this.url, this.async);
if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObj.onreadystatechange=function() {
if(xmlObj.readyState==4) {
if(xmlObj.status==200) {
ObjSelf.callback(xmlObj);
}
}
}
if(this.method=="POST") xmlObj.send(this.content);
else xmlObj.send(null);
}
}
类名:AJAX
创建方法:var ajaxobj=new AJAX;, ......
最近做网站用到了UpProgress控件,所以把遇到的问题和自己的看法写下来,供以后参考,也希望给大家代码帮助。
UpProgress是和UpdatePanel一起使用的。实现效果就是在提交到服务器的时候,显示提示,比如:“数据加载中,请稍微..”给用户一个好的用户体验。这个的用法也简单。下面就是具体代码:
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="script" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="update" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button1_Click" />
<asp:UpdateProgress ID="progress" runat="server" AssociatedUpdatePanelID="update">
<ProgressTemplate>
<span style ......
一、处理ajax请求的jsp文件:auto.jsp
<%@ page contentType="text/html; charset=gb2312" %>
<%
//设置输出信息的格式及字符集
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
out.println("<response>");
for(int i=0;i<2;i++){
out.println("<name>"+(int)(Math.random()*10)+
"型笔记本</name>");
out.println("<count>" +(int)(Math.random()*100)+ "</count>");
}
out.println("</response>");
out.close();
%>
二、发送ajax请求的html文件:autoRefresh.html
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</head>
<script language="javascript">
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXML ......
一、处理ajax请求的jsp文件:auto.jsp
<%@ page contentType="text/html; charset=gb2312" %>
<%
//设置输出信息的格式及字符集
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
out.println("<response>");
for(int i=0;i<2;i++){
out.println("<name>"+(int)(Math.random()*10)+
"型笔记本</name>");
out.println("<count>" +(int)(Math.random()*100)+ "</count>");
}
out.println("</response>");
out.close();
%>
二、发送ajax请求的html文件:autoRefresh.html
<head>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
</head>
<script language="javascript">
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXML ......
<script type="text/javascript">
$(document).ready(function() {
$("#teamName").change(function() {
$.getJSON('/team/SelectProduct', { teamName: $("#teamName").val() }, function(data) {
$("#productID").empty();
$.each(data, function(i, item) {
$("<option></option>")
.val(item)
.text(item)
.appendTo($("#productID"))
});
});
})
});
controller:
public ActionResult SelectProduct()
{
string teamName = Request.Params["teamName"];
int teamID = dc.TestTeams.Where(x => x.Name == teamName).SingleOrDefault().Id;
var productCollection = dc.Products.Where(x => x.TestTeamId == teamID).Select(x=> x.ShortName);
return Json(productCollection);
......
一、XMLHttpRequest 对象的方法与属性
方 法
描 述
abort()
停止当前请求
getAllResponseHeaders()
把HTTP请求的所有响应首部作为键/值对返回
getResponseHeader("header")
返回指定首部的串值
open("method", "url")
建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数
send(content)
向服务器发送请求
setRequestHeader("header", "value")
把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()
属 性
描 述
onreadystatechange
每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数
readyState
请求的状态。有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
responseText
服务器的响应,表示为一个串
responseXML
服务器的响应,表示为XML。这个对象可以解析为一个DOM对象
status
服务器的HTTP状态码(200对应OK,404对应Not Found(未找到),等等)
statusText
HTTP状态码的相应文本(OK或Not Found(未找到)等等)
二、使用XMLHttpReq ......