基于jQuery的ajax功能实现web service的json转化

 更新时间:2009年08月29日 01:37:18   作者:  
前面文章说过下次会给大家介绍详细的基于web Services的JqueryAjax调用如何把一个datatable得数据转化成JSON数据,然后在客户端再通过json2.js转化成javascript对象。

不过这篇文章的题目我真不知道该怎么起,如果你因为这个差劲的题目错过这个东西,那真的很可惜。

我在做这个东西之前参考了不少文章:

http://www.roseindia.net/tutorials/json/parse-message-JSON-JS.shtml

http://www.json.org/js.html

http://funkatron.com/site/comments/safely-parsing-json-in-javascript/

http://docs.jquery.com/Ajax/jQuery.getJSON

http://encosia.com/2009/06/29/never-worry-about-asp-net-ajaxs-d-again/

http://encosia.com/2009/04/07/using-complex-types-to-make-calling-services-less-complex/

http://www.isolutionteam.co.uk/json-jquery-ajax-aspnet-and-c-to-get-ajaxed-data-table-rows-passing-multiple-parameters/

第一步需要做的是如何在Server端把一个datatable转坏为自己需要的那种格式:

本来想使用.net的javascriptSerializer来完成的(结合Genirics库的List等),但是后来发现使用NewtonSoft.Json更加灵活,而且扩展性比较好,甚至在网上有找到一些代码能够现成使用。

 

先看看我在Server端如何实现了Data转化:

 

这里不仅能够转换Datatable还有DataSet,以后再扩展JavascriptSerializer的转换功能。需要注意的是转化的最终结果需要是个[]包着的一段字符串.开始我试着使用{}来最终返回json为对象,结果在客户端真的是没有头绪根本就无法转换。最后看到一篇文章介绍,在.net 3.5中你的web Services返回来的结果会自动打包成一个json对象,且名字为d,如:{“d”:***}.所以我只有在服务器端的生成一个array形式的包。

然后我创建了一个数据库表,内容如下:

 

,

定义的web方法如下:

 

Serializer方法已经在DNA_JSON中打包好。它是在NewtonSoft.Json的基础转换类基础上扩展的。

 

第二步是客户端的东西:

首先我们需要用到几个js, jQuery.js, json2.js就OK了。

 

上面图所示我们用到了jQuery的ajax和JSON。Parse()转换函数。

还有需要注意的是res.d它是.net 3.5默认为你打包好的json的属性。如果你使用framework2.0就没有这个问题了。

最后是看看如何把这些ojbect组成的array显示在一个table中,代码如下:

复制代码 代码如下:

<script type="text/javascript"><!--
function BuildTable(msg) {
if ($('#tblResult').length != 0) // remove table if it exists
{$("#tblResult").remove();}
var table = '<table class="table.display"><thead> <tr><th>First Name</th> <th>Last Name</th><th>Email</th></thead> <tbody>';
for (var i=0;i<=msg.length-1;i++) {
var row = '<tr>';
row += '<td>' + msg[i].UserName+ '</td>';
row += '<td>' +msg[i].FirstName+ '</td>';
row += '<td>' + msg[i].email + '</td>';
row += '</tr>';
table += row;
}
table += '</tbody></table>';
$('#example1').html(table);
}
// --></script>

如果还有需要源代码的请留言。接下来我会试着去使用这个方法把一些jQuery的ajax插件介绍给大家,然后把一些datagrid的插件封装成asp.net控件,这样你就不需要使用微软那笨重的datagrid了。

相关文章

  • jquery改变disabled的boolean状态的三种方法

    jquery改变disabled的boolean状态的三种方法

    改变disabled的boolean状态,下面为大家介绍三种比较不错的方法,大家可以参考下
    2013-12-12
  • jquery中object对象循环遍历的方法

    jquery中object对象循环遍历的方法

    这篇文章主要介绍了jquery中object对象循环遍历的方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • jQuery日程管理控件glDatePicker用法详解

    jQuery日程管理控件glDatePicker用法详解

    这篇文章主要介绍了jQuery日程管理控件glDatePicker用法,结合具体实例形式分析了jQuery控件glDatePicker的简单使用技巧与相关注意事项,需要的朋友可以参考下
    2017-03-03
  • 十个迅速提升JQuery性能让你的JQuery跑得更快

    十个迅速提升JQuery性能让你的JQuery跑得更快

    jQuery正在成为Web开发人员首选的JavaScript库,作为Web开发者,除了要了解语言和框架的应用技巧外如何提升语言的性能,本文提供即刻提升你的脚本性能的十个步骤 简单的几步让你的JQuery跑得更快 需要的朋友可以参考下
    2012-12-12
  • 基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解

    基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解

    这篇文章主要介绍了基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-07-07
  • js过滤HTML标签以及空格的思路及代码

    js过滤HTML标签以及空格的思路及代码

    今天要做一个应用--判断编辑器中文字的个数。如果少如20个字就不能让其提交。没多想,正好周末的时候看了一下js中正则表达式的内容。很容易就想到了要用正则表达式来解决这个问题。虽说看了正则表达式的内容是看了,但是毕竟还是刚接接触,连基本的概念都很模糊,于是只好在网上找到如下的代码:
    2013-05-05
  • 原生js和jquery实现图片轮播特效

    原生js和jquery实现图片轮播特效

    本文给大家分享的是使用原生JS和JQ两种方法分别实现相同的图片轮播特效,十分的实用,也非常方便大家对比学习原生js和jQuery,有需要的小伙伴可以参考下。
    2015-04-04
  • jquery validate.js表单验证的基本用法入门

    jquery validate.js表单验证的基本用法入门

    jquery.validate.js是jquery下的一个验证插件,功能比较强大,早就有所耳闻但是一只没有动手用过,现在在于能够研究一下了。
    2010-05-05
  • jQuery中:nth-child选择器用法实例

    jQuery中:nth-child选择器用法实例

    这篇文章主要介绍了jQuery中:nth-child选择器用法,实例分析了:nth-child选择器功能、定义及匹配子元素或奇偶元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • npm 安装jquery及使用教程

    npm 安装jquery及使用教程

    本文将介绍如何使用npm安装和使用jQuery,帮助读者解决相关问题,并提供示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11

最新评论