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 相关文章推荐
调用js时ie6和ie7,ff的区别
Aug 19 Javascript
IFrame跨域高度自适应实现代码
Aug 16 Javascript
用JQuery实现全选与取消的两种简单方法
Feb 22 Javascript
jquery代码实现简单的随机图片瀑布流效果
Apr 20 Javascript
jQuery中$.extend()用法实例
Jun 24 Javascript
JS实现方向键切换输入框焦点的方法
Aug 19 Javascript
js时间戳格式化成日期格式的多种方法介绍
Feb 16 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
May 02 Javascript
vue 之 .sync 修饰符示例详解
Apr 21 Javascript
浅谈vue 单文件探索
Sep 05 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
JavaScript事件的委托(代理)的用法示例详解
Feb 18 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中文件上传的安全问题
2006/10/09 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php调整服务器时间的方法
2015/04/03 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
图片自动更新(说明)
2006/10/02 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery中动态效果小结
2010/12/16 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
党员违纪检讨书
2015/05/05 职场文书
催款律师函范文
2015/05/27 职场文书
银行求职信怎么写
2019/06/20 职场文书