asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码


Posted in Javascript onSeptember 19, 2010

首先贴上Jquery的ajax:

$.ajax({ 
url: 'ws_Ajax.asmx/BindDictByUpper', 
type: 'POST', 
contentType: 'application/json;charset=utf-8', 
dataType: 'json', 
data: '{ PpareId:"' + varlue + '"}', 
success: function (data) { 
var dataObj = eval("(" + data + ")"); 
// $('#myList').html(''); 
// for (var i = 0; i < msg.d.length; i++) { 
// $('#myList').append('<li>' + msg.d[i] + '</li>'); 
// } 
alert(dataObj); 
$.each({ name: "John", lang: "JS" }, function (i, n) { 
alert("Name: " + i + ", Value: " + n); 
}); 
$.each(dataObj, function (idx, item) { 
if (idx == 0) { 
return true; //同countinue,返回false同break 
} 
alert("name:" + item['name'] + ",value:" + item['value']); 
}); 
}, 
//data: '{query:"' + $('#editQuery').val() + '"}', 
processData: false 
});

好,前台写好,建一个webservice页,写上方法:
/// <summary> 
/// Datatable转换为Json 
/// </summary> 
/// <param name="table">Datatable对象</param> 
/// <returns>Json字符串</returns> 
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(); 
}

然后尝试着运行,这是出问题列,无论怎样运行都不能调到后台方法:
最后在网上查列好久
才发现在新建的webservice页少了一句关键的话:
[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数据,知道的给解答下……
Javascript 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
jQuery学习笔记 更改jQuery对象
Sep 19 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 Javascript
浅谈轻量级js模板引擎simplite
Feb 13 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
js监听input输入框值的实时变化实例
Jan 26 Javascript
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
教你使用vue-cli快速构建的小说阅读器
May 13 Javascript
jquery异步循环获取功能实现代码
Sep 19 #Javascript
JavaScript随机排序(随即出牌)
Sep 17 #Javascript
js下通过getList函数实现分页效果的代码
Sep 17 #Javascript
前端开发的开始---基于面向对象的Ajax类
Sep 17 #Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
Sep 17 #Javascript
js下用eval生成JSON对象
Sep 17 #Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 #Javascript
You might like
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
smarty缓存用法分析
2014/12/16 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
纯文字版返回顶端的js代码
2013/08/01 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
详解webpack性能优化——DLL
2017/10/20 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
JS中的BOM应用
2018/02/02 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
Python中的各种装饰器详解
2015/04/11 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
python django中8000端口被占用的解决
2019/12/17 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
前台文员职责范本
2014/03/07 职场文书
霸气队列口号
2014/06/18 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
教书育人演讲稿
2014/09/11 职场文书
软件测试专业推荐信
2014/09/18 职场文书
见习期个人总结
2015/03/05 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
CSS极坐标的实例代码
2021/06/03 HTML / CSS