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 相关文章推荐
jquery 笔记 事件
Nov 02 Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 Javascript
JavaScript中window、doucment、body的解释
Aug 14 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
Nov 30 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 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
用ODBC的分页显示
2006/10/09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
javascript读取RSS数据
2007/01/20 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
Python argv用法详解
2016/01/08 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python机器学习之决策树算法
2017/12/22 Python
浅谈python常用程序算法
2019/03/22 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
美国在线家具网站:GDFStudio
2021/03/13 全球购物
学校招生宣传广告词
2014/03/19 职场文书
校庆筹备方案
2014/03/30 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
政审证明材料
2015/06/19 职场文书
退休欢送会主持词
2015/07/01 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
MySQL创建管理LIST分区
2022/04/13 MySQL