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 相关文章推荐
javawscript 三级菜单的实现原理
Jul 01 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
Apr 02 Javascript
jQuery获取页面元素绝对与相对位置的方法
Jun 10 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
Nov 17 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
JSONP基础知识详解
Mar 19 Javascript
聊聊JavaScript如何实现继承及特点
Apr 07 Javascript
Angularjs的键盘事件的绑定
Jul 27 Javascript
使用gulp构建前端自动化的方法示例
Dec 25 Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
Python 实现try重新执行
2019/12/21 Python
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
小学毕业感言50字
2014/02/16 职场文书
临床护理求职信
2014/04/26 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
家装业务员岗位职责
2015/04/03 职场文书
初一英语教学反思
2016/02/15 职场文书
四年级数学教学反思
2016/02/16 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
Go语言应该什么情况使用指针
2021/07/25 Golang
mysql自增长id用完了该怎么办
2022/02/12 MySQL