【 tulaoshi.com - Web开发 】
前台
代码如下:
!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
title无标题页/title
style type="text/css"
.show{ display:block;}
.hide{ display:none;}
/style
script type="text/javascript" src="jquery/jquery-1.2.6.js"/script
script type="text/javascript"
//这个方法把ajax方法封装一下,方便调用。
function myajax(){
//var obj=jsonData();
$.ajax({
type:'post',
url:'ajax.aspx',
data:jsonData(),//可以直接加一个函数名。
dataType:'json',
beforeSend:beforecall,
success:callback
});
}
//封装json数据,为了代码清晰
function jsonData(){
var jsonStr="({";
jsonStr+=""name":";
jsonStr+=""tree"";
jsonStr+=",";
jsonStr+=""id":";
jsonStr+=""123"";
jsonStr+="})";
return eval(jsonStr);//关键在于转换。
}
//调用前方法,不成功
function beforecall(){
$('#wait').addClass("show").append('调出中...');
//alert('');//测试是否调用
}
//回调函数
function callback(data){
$('#response').append(data.name+data.id);
$('#wait').css("display","none");
}
//onload()事件
$(function(){
$('#confirm').click(myajax);
})
/script
/head
body
div id="confirm"点击/div
div id="response"接收后台数据/div
div id="wait" class="hide"hello/div
/body
/html
后台
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
string name = Request.Params["name"].ToString();
string birth = Request.Params["birthday"].ToString();
if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(birth))
{
//Response.ContentType = "Application/json";
//Response.Write(CreareJson("this is ok!", 1, name, birth));
ht.Add("info", "成功了");
ht.Add("sta", "状态");
ht.Add("name", name);
ht.Add("birth", birth);
Response.Write(CreateJsonParams(ht));
}
Response.End();
}
private string CreateJsonParams(Hashtable items)
{
string returnStr = "";
foreach(DictionaryEntry item in items)
{
returnStr += """ + item.Key.ToString() + "":"" + item.Value.ToString() + "",";
}
return "{" + returnStr.Substring(0,returnStr.Length-1) + "}";
}