Jquery+asp.net后台数据传到前台js进行解析的方法


Posted in Javascript onMay 11, 2014

所以在解析后台数据的时候,我们需要根据后台的数据情况,特殊处理和对待。

我这里后台用的是asp.net提供的wcf服务,也有ashx一般处理程序。大致原理差不多。

C#中我们经常用的对象,有实体对象比如:User;有List集合,一般为返回列表。

复杂点的还有对象嵌套对象或者list集合的。不过没什么差别,只要看你的数据多少来决定是由js处理数据,

还是后台处理了直接返回最终结果。

1、实体对象:返回是对象的话,在js中,直接就是和你后台代码类中的对象数据是一样的。

比如下面代码,就是获取到一个对象。直接用它的name属性就可以获取到。

$.ajax({ 
type: "post", 
dataType: "json", traditional: true, 
data: { oper: "edit", sid: id }, 
url: AjaxUrl, 
success: function (data, textStatus) { 
if (data != null) { 
if (data) { 
$("#name").val(data.Name); 获取到对象了。 
SetSelectOpertionValue("selectRelation", data.Relation); 
SetSelectOpertionValue("selectaddreason", data.Reason); 
} else { 
$("#btnAdd").attr("disabled", false); $("#btnAdd").text("编辑"); 
} 
} 
}, 
complete: function 
(XMLHttpRequest, textStatus) { 
}, 
error: function 
(e) { 
$("#btnAdd").attr("disabled", false); $("#btnAdd").text("编辑"); 
} 
});

2、返回数据是List集合,包含一些对象:这应用场景也很多。

在js中,对应的一个array数组。数组中是你返回的对象实体。可以采用each遍历。具体可以参考:

[Jquery操作js数组及对象示例]

demo:

$.ajax({             type: "post", 
            dataType: "json", traditional: true, 
            data: { oper: "list", lc: ID,nm:$("#searchname").val() }, 
            url:sAjaxUrl, 
            success: function (data, textStatus) {                 if (data != null) { 
                    if (data.Instance==null &data.Instance.length==0) {                         return; 
                    } 
                    else {                            
                        var datalist = data.Instance;                         if (sort == 1) {                              datalist = datalist.sort( 
                                        function (a, b) {                                                
                                            return (a.Id - b.Id);                                         } 
                                    ); 
                        } else {                             datalist = datalist.sort( 
                                       function (a, b) {                                            return (b.Id - a.Id);                                        } 
                                   ); 
                        } 
                        var html = ""; 
                        //绑定数据到table 
                        var tabledata = GetJson(datalist);                          
                    } 
                } 
            }, 
            complete: function (XMLHttpRequest, textStatus) {             }, 
            error: function (e) {                    
            } 
        });
<script type="text/javascript">
//假如返回的是:
var json = "['2010-4-2','2010-4-1','2010-5-2']";
var dateArray = eval(json);
for(i in dataArray)
{
   document.write(dataArray[i]);
}
</script>

或者:

 $.each(data.comments, function(i, item) {
            $("#info").append(
                    "<div>" + item.id + "</div>" + 
                    "<div>" + item.nickname    + "</div>" +
                    "<div>" + item.content + "</div><hr/>");
        });

3、如果是复杂嵌套的话,也是对象了。js中会完全和后台对应。你遍历即可。

现在很多时候,后台返回给前台一般都是用json了。json在js中可以直接解析成对象。

Javascript 相关文章推荐
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
js 函数的副作用分析
Aug 23 Javascript
js调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
js实现按Ctrl+Enter发送效果
Sep 18 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
Vue2实现组件props双向绑定
Dec 02 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
Jun 25 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
如何防止回车(enter)键提交表单
May 11 #Javascript
js取整数、取余数的方法
May 11 #Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
May 11 #Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
May 11 #Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
May 11 #Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
May 11 #Javascript
jquery 按键盘上的enter事件
May 11 #Javascript
You might like
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
PHP使用内置函数file_put_contents写入文件及追加内容的方法
2015/12/07 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
php curl常用的5个经典例子
2017/01/20 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
php求斐波那契数的两种实现方式【递归与递推】
2019/09/09 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python直接访问私有属性的简单方法
2016/07/25 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
Python 如何展开嵌套的序列
2020/08/01 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
爱情检讨书大全
2014/01/21 职场文书
工作鉴定评语
2014/05/04 职场文书
家长学校培训材料
2014/08/20 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
德能勤绩工作总结
2015/08/11 职场文书
2019军训心得体会
2019/06/27 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS