asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
2010-09-18 19:04
1456 查看
首先贴上Jquery的ajax:
代码
ScriptMethod在 using System.Web.Script.Services 命名空间下,这里还可以设置是否使用 get方式来调用 UseHttpGet=true
然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法:
最后在网上查列好久
才发现在新建的webservice页少了一句关键的话:
在类前面加上这句话就可以了
加上以后再运行,好,可以调到后台了
后台的数据也发送到前台
但又出现问题列,发过来的数据不能以解析出来json数据
按网上说的,只要把ajax中的dataType设置为json就行了,但是实际上不行,然后在网上查了下:
1、对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法
但是我把他的dataType设置为json,应该直接可以用le?
于是我把传回来的数据放在eval()方法里面处理了下,再调用就可以le?
这样前台调出来的数据就可以直接按你需要的方式处理了。
我这里还又一个疑问:
我用这种方式取数为什么查不出来数据(我对json不是很熟,第一次用):
网上看的这样方式页可以调用json数据,知道的给解答下……
代码
/// <summary> /// Datatable转换为Json /// </summary> /// <param name="table">Datatable对象</param> /// <returns>Json字符串</returns> //然后在webservice中需要返回json数据的方法加上如下属性 [ScriptMethod(ResponseFormat=ResponseFormat.Json)] public static string ToJson(DataTable Adt) { StringBuilder jsonString = new StringBuilder(); jsonString.Append("["); foreach (DataRow pdr in Adt.Rows) { jsonString.Append("{"); jsonString.AppendFormat("name:\"{0}\",value:\"{1}\"", pdr["字典内容"].ToString(), pdr["序号"].ToString()); jsonString.Append("},"); // jsonString.AppendFormat("{name:'{0}',value:'{1}'},", pdr["字典内容"].ToString(), pdr["序号"].ToString()); } jsonString.Remove(jsonString.Length - 1, 1); jsonString.Append("]"); return jsonString.ToString(); }
ScriptMethod在 using System.Web.Script.Services 命名空间下,这里还可以设置是否使用 get方式来调用 UseHttpGet=true
然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法:
最后在网上查列好久
才发现在新建的webservice页少了一句关键的话:
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
在类前面加上这句话就可以了
加上以后再运行,好,可以调到后台了
后台的数据也发送到前台
但又出现问题列,发过来的数据不能以解析出来json数据
按网上说的,只要把ajax中的dataType设置为json就行了,但是实际上不行,然后在网上查了下:
1、对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法
但是我把他的dataType设置为json,应该直接可以用le?
于是我把传回来的数据放在eval()方法里面处理了下,再调用就可以le?
这样前台调出来的数据就可以直接按你需要的方式处理了。
我这里还又一个疑问:
我用这种方式取数为什么查不出来数据(我对json不是很熟,第一次用):
$.each(data.root,function(idx,item){ if(idx==0){ return true;//同countinue,返回false同break } alert("name:"+item.name+",value:"+item.value); }); });
网上看的这样方式页可以调用json数据,知道的给解答下……
相关文章推荐
- asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
- asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
- ASP.NET利用JQuery中的Aajax实现JSON数据后台交互
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- ASP.NET 使用WebServices+Ajax实现无刷新验证用户是否已注册
- asp.net中利用Jquery+Ajax+Json实现无刷新分页
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- asp.net中利用Jquery+Ajax+Json实现无刷新分页
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- Send and Receive JSON objects to Web Service Methods using jQuery AJAX in ASP.Net
- asp.net中利用Jquery+Ajax+Json实现无刷新分页
- asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
- asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码
- asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码
- JQuery实现Repeater无刷新批量删除(附后台asp.net源码)
- asp.net+jQuery应用JSON实现无刷新三级联动实例(转)
- 使用FlexBox和Json实现类似ComboBox(类似Google的输入提示和自动)功能-基于JQuery-ASP.NET