$(document).ready(function () {
$("#txtXJRQ").bind("change", function () {
$.get("/Api/2ywbl/lrqj.ashx?action=calculate&xjrq=" + $("#txtXJRQ").val() + "&ksrq=" + $("#ksrq").val(), "", function (data) {
//var ad= eval(result);
alert(data);
//$("#txtYTHSF").val(data[2]);
//$("#txtSJQJTS").val(data[1]);
}, "json");
});
});
switch (action)
{
case "calculate":
CalculateRq(context);
break;
}
public void CalculateRq(HttpContext context)
{
DateTime xjrq = Convert.ToDateTime(context.Request.QueryString["xjrq"]);
DateTime ksrq = Convert.ToDateTime(context.Request.QueryString["ksrq"]);
string ts = Convert.ToString(Math.Abs((xjrq - ksrq).Days));
string fy = Convert.ToString(Math.Abs((xjrq - ksrq).Days)*10);
ArrayList dic = new ArrayList();
Dictionary<string, object> drow = new Dictionary<string, object>();
drow.Add("sjts", ts);
drow.Add("ythsf", fy);
dic.Add(drow);
var result = new
{
aaData = dic
};
JavaScriptSerializer serializer = new JavaScriptSerializer();
// 通过JavaScriptSerializer对象的Serialize序列化为["value1","value2",...]的字符串
string jsonString = serializer.Serialize(result);
context.Response.Write(jsonString);
}
谁给看看是哪出问题了,alert(data)出来是object object ,
alert(aaData)出来是aaData为定义
没有问题,因为你用$.get 获取格式类型为json,他就是一个object, 你 把json改为html 就可以出来序列化后的字符串了,如 {"aaData":[{"sjts":"1","ythsf":"10"}]}
@随静而动 修改成html后还是没反应,现在ie下弹出aadata未定义,其他就没啥动静了,求解。
@Lie to me: 我吧你的代码拷贝了一份, 试了以下 ok 啊,json格式就弹出object, 这是你可以直接调用alert(data.aaData) ,正确应该弹出obect;
如果是html格式 ,你使用data.aaData 肯定弹出undefined, alert(eval('('+data+')').aaData) 就可以了,就是data.aaData 你要使用这样的额调用 就必须是 json object.
context.Response.Write(jsonString);
context.Response.End();
用chrome开发者工具,看一下,究竟返回的是什么
你们说的我都试了,改成html,然后弹出提示aadata未定义就没啥动静了,这又是为什么??
jsonstring前面已经说了{"aaData":[{"sjts":"1","ythsf":"10"}]},我在google的审查元素也没找到value值。
json格式化http://www.sojson.com真心不错