我用 纯 AJAX ,也用 prototype,xml ,json ,jquery asp.net ajax 原理都一样。==客户端== var req=null;
function processReqChange2() { if(req.readyState==4 && req.status==200) { var dtable=document.getElementById('tshow');
var nl = req.responseXML.getElementsByTagName( 'book' ); for( var i = 0; i < nl.length; i++ ) { var nli=nl.item(i); var eauthor=nli.getElementsByTagName('author'); var author=eauthor.item(0).firstChild.nodeValue; var etitle=nli.getElementsByTagName('title'); var title=etitle.item(0).firstChild.nodeValue;
var elTr = dtable.insertRow( -1 ); var elAuthorTd = elTr.insertCell( -1 ); elAuthorTd.innerHTML = author; var elTitleTd = elTr.insertCell( -1 ); elTitleTd.innerHTML = title; } } } function processReqChange3() { if(req.readyState==4 && req.status==200) { var objdiv=document.getElementById('result'); var dtable=document.getElementById('tshow');
var books = eval(req.responseText); for(var b in books) { var elTr = dtable.insertRow( -1 ); var elAuthorTd = elTr.insertCell( -1 ); elAuthorTd.innerHTML = books[b].author; var elTitleTd = elTr.insertCell( -1 ); elTitleTd.innerHTML = books[b].title; }
AJAX的话微软有写过一套控件,就是updatepanel了,使用起来也很简单,只要一拉。
具体百度asp.net ajax
现在的项目中经常用到,当然也要根据项目需求
一般在什么情况用?
web service实现分布式系统的选择。而ajax实现数据无刷新效果,
仍然看项目需要
要怎么学呢?
下载ajax相关组件,按照提供的范例程序,学习。
我在工作中经常用的两种方法是
1、前台:XMLHttpRequest对象 + 后台:ashx文件;
2、ICallbackEventHandler接口(vs2005后才有的)
var req=null;
function processReqChange2()
{
if(req.readyState==4 && req.status==200)
{
var dtable=document.getElementById('tshow');
var nl = req.responseXML.getElementsByTagName( 'book' );
for( var i = 0; i < nl.length; i++ )
{
var nli=nl.item(i);
var eauthor=nli.getElementsByTagName('author');
var author=eauthor.item(0).firstChild.nodeValue;
var etitle=nli.getElementsByTagName('title');
var title=etitle.item(0).firstChild.nodeValue;
var elTr = dtable.insertRow( -1 );
var elAuthorTd = elTr.insertCell( -1 );
elAuthorTd.innerHTML = author;
var elTitleTd = elTr.insertCell( -1 );
elTitleTd.innerHTML = title;
}
}
}
function processReqChange3()
{
if(req.readyState==4 && req.status==200)
{
var objdiv=document.getElementById('result');
var dtable=document.getElementById('tshow');
var books = eval(req.responseText);
for(var b in books)
{
var elTr = dtable.insertRow( -1 ); var elAuthorTd = elTr.insertCell( -1 );
elAuthorTd.innerHTML = books[b].author; var elTitleTd = elTr.insertCell( -1 );
elTitleTd.innerHTML = books[b].title;
}
}
}
function loadUrl(url,f)
{
if(window.XMLHttpRequest)
{
try
{
req=new XMLHttpRequest();
}
catch(e)
{
req=false;
}
}
else if(window.ActiveXObject)
{
try
{
req=new ActiveXObject('Msxml2.XMLHTTP');
}
catch(e)
{
try
{
req=new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e)
{
req=false;
}
}
}
if(req)
{
if(f=='2')
{
req.onreadystatechange=processReqChange2;
}
else if(f=='3')
{
req.onreadystatechange=processReqChange3;
}
req.open('GET',url,true);
req.send('');
}
}
function ajaxcallxml()
{
var url="ajaxserver.aspx?id=2";
loadUrl(url,2);
}
function ajaxcalljs()
{
var url="ajaxserver.aspx?id=3" ;
loadUrl(url,3);
}
function ajaxcallsqlxml()
{
var url="ajaxserver.aspx?id=5";
loadUrl(url,2);
}
function ajaxcalljsjson()
{
var url="ajaxserver.aspx?id=6" ;
loadUrl(url,3);
}
===服务器===
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["aa"]!= null)
{
Response.Write("【中文】欢迎光临:<span style='color:red'>天山寒雪<span>");
Response.End();
}
if (Request.QueryString["id"] != null)
{
string s = Request.QueryString["id"].ToString();
int f = Int32.Parse(Request.QueryString["id"].ToString());
if (f == 2)
{ Response.ContentType = "text/xml";
string xmlstr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"+
"<中文> " +
"<book>"+
"<author>天山寒雪QQ'QQ\"MSN“Email</author>"+
"<title><![CDATA[757015000<200]]></title>" +
"</book>"+
"<book>"+
"<author><![CDATA[天山寒雪MSN<QQ]]></author>" +
"<title>[email protected]>520</title>"+
"</book>"+
"<book>"+
" <author><![CDATA[777<E88]]></author>" +
" <title>[email protected]</title>"+
"</book>"+
"</中文>";
Response.Write(xmlstr);
}
else if (f == 3)
{
string jsstr = "["+
"{ author: '天山\\'寒雪[1]\"E520', title: '互联网' },"+
"{ author: '天山寒雪[2]<E520', title: '软件开发' },"+
"{ author: '天山寒雪[3]>E', title: '音乐' }"+
"]";
Response.Write(jsstr);
}
else if (f == 4)
{
XmlDocument xd = new XmlDocument();
string xmlstr = "<中文> " +
"<book>" +
"<one>天山寒雪QQ</one>" +
"<two>天山寒雪MSN</two>" +
"</book>" +
"</中文>"; xd.LoadXml(xmlstr);
Response.ContentType = "text/xml";
Response.Write(xd.InnerXml);
}
else if (f == 5)
{
string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
string sql = "select b,c from test2";
Response.ContentType = "text/xml";
string xmlstr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><中文>";
using (SqlDataReader dr = SqlHelper.ExecuteReader(connstr, CommandType.Text, sql))
{
while(dr.Read())
{
xmlstr += "<book><author>" + dr.GetInt32(0) + "</author><title><![CDATA[" + dr.GetString(1) + "]]></title></book>";
}
}
xmlstr += "</中文>";
Response.Write(xmlstr);
}
else if (f == 6)
{
string connstr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
string sql = "select b,c from test2";
string xmlstr = "[";
using (SqlDataReader dr = SqlHelper.ExecuteReader(connstr, CommandType.Text, sql))
{
while (dr.Read())
{
xmlstr += "{author:'" + dr.GetInt32(0) + "',title:'" + dr.GetString(1).Replace("'","'")+ "'},";
}
}
xmlstr =xmlstr.Remove(xmlstr.Length -1);
xmlstr += "]";
Response.Write(xmlstr);
}
else
{
Response.Write("无任何数据...");
}
Response.End();
}
}
</script>