首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

谈谈c#中的XML ajax,该如何处理

2012-01-22 
谈谈c#中的XML ajaxXML ajax在c#的web项目中是否很常用? 一般在什么情况用?要怎么学呢?[解决办法]楼主是指

谈谈c#中的XML ajax
XML ajax在c#的web项目中是否很常用? 一般在什么情况用?要怎么学呢?

[解决办法]
楼主是指XML WEB Services + AJAX的结合?
AJAX的话微软有写过一套控件,就是updatepanel了,使用起来也很简单,只要一拉。。。。
具体百度asp.net ajax
[解决办法]
开发工具升级到VS2008 里面有自带的控件
[解决办法]
XML ajax在c#的web项目中是否很常用?
现在的项目中经常用到,当然也要根据项目需求
 一般在什么情况用?
web service实现分布式系统的选择。而ajax实现数据无刷新效果,
仍然看项目需要

要怎么学呢?

下载ajax相关组件,按照提供的范例程序,学习。

[解决办法]
ajax主要是可以提供友好的用户体验
我在工作中经常用的两种方法是
1、前台:XMLHttpRequest对象 + 后台:ashx文件;
2、ICallbackEventHandler接口(vs2005后才有的)
[解决办法]
UpdatePannel确实是一个好东西。。。


[解决办法]
我用 纯 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;
}


}

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&lt;QQ]]></author>" +
"<title>haijun.qin@hotmail.com>520</title>"+
"</book>"+
"<book>"+
" <author><![CDATA[777&lt;E88]]></author>" +
" <title>haijun.qin@gmail.com</title>"+
"</book>"+
"</中文>"; 
Response.Write(xmlstr);
}
else if (f == 3)
{
string jsstr = "["+
"{ author: '天山\\'寒雪[1]\"E520', title: '互联网' },"+
"{ author: '天山寒雪[2]&lt;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("'","&#39;")+ "'},";
}
}
xmlstr =xmlstr.Remove(xmlstr.Length -1); 
xmlstr += "]";
Response.Write(xmlstr);
}
else
{
Response.Write("无任何数据...");
}
Response.End();
}
}
</script>

热点排行