Asp.Net教程,WinForm教程,Asp.Net MVC,vs2008教程,vs2010教程,Silverlight技术,源码下载,Asp.Net视频教程
全站热门标签
vs2010 Silverlight 存储过程 水晶报表 LINQ ADO.NET JavaScript DataGridView GridView AjaxPro DevExpress 面向对象 Extjs XML HTML教程 Oracle jQuery WPF MVC 分页 Office2010 GDI+ Visual C++2010 Dojo MySQL VB.NET WCF4.0 ASPxGridView WinForm textbox Sql2005 cookie Discuz!NT checkbox WCF SQL经典语句 T-SQL F# asp.net VS2008 SQL Ajax DropDownList VS2008新特性 TreeView Access Flex 页面执行时间 字符串 DataSet VB2005 回调 动画 C#时间 游戏 ASP.NET MVC
jQuery JavaScript Html/Css Flex Dojo ExtJSAJAX
当前位置: 主页 > Web编程 > AJAX >

使用jquery+json实现ajax的方法

时间:2010-02-25 21:26来源:未知 作者:admin 点击:

在使用Jquery + json 的过程中由于一个小问题没有注意到,程序一直有错误。在网上找了很多JSON方面的文章但基本都是很简单的举例,所以我觉得有必要写一个完整的JQuery + json 实现AJAX的例子,如果可以帮到别人那是最好,否则就当是给自己备忘了吧。

     好啦,进入正题吧。

     关于JSON的介绍网上有很多在这里只简单介绍一下Json表示数据的格式:      

  • 对象是属性、值对的集合。一个对象的开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。
  • 数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。
  • 值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。
  • 字符串和数字的定义和C或Java基本一致。

    下面我们使用Ajax获取订单列表数据后格式化为Json的格式后输出。首先我们建立data.ashx文件作为数据请求的处理页面:

data.ashx 文件处理请求的方法: 

Arguments.OrderQuery Query;
 2 
 3 public void ProcessRequest (HttpContext context) 
 4     {
 5         string cmd = context.Request.QueryString["__cmd__"]; //命令
 6         string pagenum = context.Request.QueryString["__pagenum__"];//页数
 7         string type = context.Request.QueryString["__type__"];//类型
 8         result = new StringBuilder();        
 9         if (cmd == null || cmd == string.Empty || type==null || type==string.Empty)
10         {
11             context.Response.Write(result.ToString());
12             return;
13         }
14         switch (cmd)
15         {
16             case "getorder":
17                 Query = new Arguments.OrderQuery();
18                 Query.Status = new int[] { (int)Arguments.Named.OrderStatus.待发单, (int)Arguments.Named.OrderStatus.下发中, (int)Arguments.Named.OrderStatus.新订单, (int)Arguments.Named.OrderStatus.已完成 };                
19                 Query.TimeStart = DateTime.Parse("2007-1-1 00:00:00");
20                 Query.TimeEnd = DateTime.Now;
21                 Query.PageSize = 25;
22                 Query.PageIndex = WebCommon.Basal.ConvertInt(pagenum) - 1;
23                 if (type == "custom")
24                 {
25                     Query.Email = context.Request.QueryString["__email__"];
26                     Query.OrderCode = context.Request.QueryString["__ordercode__"];
27                 }
28                 else
29                 {
30                     Query.Email = string.Empty;
31                     Query.OrderCode = string.Empty;
32                 }
33                 
34                 int recordnum = 0;
35                 IList<Model.OrderInfo> OrderList = WebCommon.DataSource.SearchOrderList(Query, ref recordnum);
36                 FormatJson(OrderList,recordnum);  //格式化数据为Json的方法              
37                 context.Response.Write(result.ToString());
38                 break;
39         }
40     }
41 
42     ///<Summary>
43     ///将数据构造为Json格式
44     ///数据构造后的格式为:{order:[{OrderCode:200901010001,Status:下发单,CreateTime:2009-1-1}],Count:1}
45     ///</Summary>
46     private void FormatJson(IList<Model.OrderInfo> orderlist,int recordnum)
47     {
48         if (orderlist == null || orderlist.Count <= 0)
49             return;
50         result.Append("{Order:[");
51         for (int i = 0; i < orderlist.Count;i++)
52         {
53             result.Append("{OrderCode:\"" + orderlist[i].Code + "\",Status:\"" + FormatStatus(orderlist[i].Status) + "\",CreateTime:\"" + orderlist[i].CreateTime + "\"}");
54             if ((i + 1< orderlist.Count)
55                 result.Append(",");
56         }
57         int pagenum = recordnum % 25 > 0 ? (recordnum / 25+ 1 : recordnum / 25; //计算总页数
58         result.Append("],Count:\""+pagenum+"\"}");
59     }

数据处理页面写好了,下面我们来写一个前台显示页面(display.aspx),在页面中我们使用Jquery提供的.getJSON方式来访问数据页面。

JQuery的getJSON方法的原型:$.getJSON(Url,{data:data},callbackfunction)

url (String) : 发送请求地址。

data (Map) : (可选) 待发送 Key/value 参数。

callback (Function) : (可选) 载入成功时回调函数。

前台显示页面文件 display.aspx的方法:

 function GetData(i)//取值方法,参数i表示页数
 3          {
 4              $.getJSON("data.ashx",{__cmd__:"getorder",__pagenum__:i.toString(),__type__:"all"},GetOrderCallBack);
 5          }
 6                   
 7           function GetOrderCallBack(data)
 8           {
 9               var result = data;
10               $("#tabOrderList").empty();  
11              $.each(result.Order,function(i) //循环获取返回值Order列表中的数据
12         {
13              if(result.Order[i]==null)
14                  return;
15                  $("#tabOrderList").append("<tr><td>"+result.Order[i].OrderCode+"</td><td>"+result.Order[i].Status+"</td><td>"+result.Order[i].CreateTime+"</td></tr>");
16              });            
17              $("#inptSum").val(result.Count);//从json中获取总页数            
18          }

好了,就这两步就基本搞定了。是不是很简单啊。

由于Json是Javascript的一个子集,所以不论是使用方式还是执行效率相信都不会让你失望的。

Tags:Ajax jquery+json
责任编辑:admin
返回顶部
------分隔线----------------------------
推荐内容
骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价 骆驼户外男 真皮磨砂日常休闲鞋 低帮 2011秋冬新款 专柜正品特价
  • 分享AjaxPro或者Ajax实现机制

    今天与大家分享AjaxPro或者Ajax实现机制,首先声明以下两点: 1、 这只是一家之言,本人经验,无依无据,爱信不信。 2、如果有那些地方不对,还希望大家能...

  • JQuery RadioButtonList

    首先介绍程序规则: 1.对以下的选择进行检查,检查是否全部选中 2,所谓的全部选中是指,一行中三个radiobutton必须有一个radiobutton被选中。...

  • JQuery实现智能输入提示(仿机票预订网站)

    最近在研究JQuery框架,JQuery是一套很优秀的JS框架,可以实现很多美观实用的控件。今天给大家推荐一个智能提示的空间,是模仿现在很多机票预订网站的城市智...

  • jQuery得到ashx返回的JSON格式的DataSet的方法

    jQuery得到ashx返回的JSON格式的DataSet的方法...

  • JQuery点击行(tr)实现checkBox选中,反选时移除和添加样式

    用到了三元运算符,和一个自定义的函数。 点击行时效果代码: $( tr ).live( click , function (){ if ($( this ).h...

  • 用jQuery模仿新浪微博时间组件

    废话不多说,实现原理主要是处理table,生成tr td,其中最重要的是如何找出每月第一天是星期几,然后就能对应出这个月的余下天数. 首先,说下有些人说这是重复...

  • Jquery之Ajax运用_学习运用篇

    JQuery中Ajax的运用相信很多人都已熟悉,本文主要是记录下个人实践中的应用知识,旨在加强记忆。 还是先说一些 基础知识: 语法:$.ajax({optio...

  • JQuery单选按钮和多选按钮状态判断

    function check_required() { var valid = true; var required=new Array; $(.require...

  • jQuery AJAX的小应用——手机号码归属地查询

    jQuery AJAX的小应用手机号码归属地查询 想测试下jQuery调用个第三方的WebService,利用 jQuery 的 $.get(url, data...

  • 多标签折页(jQuery示例)

    现在的垃圾留言越来越智能,并且从留言内容几乎看不出来是垃圾留言,而大量的垃圾留言会导致文章可读性下降,并可能会被搜索引擎惩罚,经过一段时间的分析和思考,我发现一...

  • JQuery 文本框高亮显示插件

    JQuery 中没有这个方法,自己今天写了一个Plugin,把代码贴出来分享一下; 代码如下: jquery-highlight.js /* descripti...

  • jquery的select插件

    Jquery是可以操作select表单控件的,比较反锁,下面是收集来的一个插件,还不错,能满足基本的选择。 可以使用这样的引入: type=text/javas...

  • 使用Jquery完成图片的预加载

    // 定义预加载图片列表的函数(有参数) jQuery.preloadImages = function (){ // 遍历图片 for ( var i = 0...

  • jQuery在asp.net中实现图片自动滚动

    时间真快,不知不觉12月已经过了一半了,新的一年即将到来。有段时间没写东西了,技术这东东天天都在更新,天天都是一个新面孔,如果不坚持学习肯定就会落在队尾。要想跟...

  • JQuery遍历表格指定列

    script type=text/javas cript $(function(){ $(#tb tr:gt(0)).each(function(){ var ...

  • AJAX无刷新下拉框联动

    AJAX无刷新下拉框联动的简单示例,分别使用了AJAX组件和xmlHttp异步刷新两种方式。 前台代码: %...@ Page Language=C# Auto...

  • ASP.NET AJAX中防止用户多次提交页面

    在Web开发程序中,往往由于种种原因,客户会多次操作页面导致数据冗余或不一致, 在ASP.NET AJAX出现之前可以通过对__dopostback()的调用等...

  • 把jQuery的each(CallBack)方法移植到C#中

    jQuery中使用each(callback)方法可以很方便的遍历集合,如 $( img ).each( function (i){ this .src = t...

  • 一些应该熟记于心的jQuery函数和技巧

    高级选择器(selector) 在jQuery中,我们可以使用各种各样的选择器,这使得选择器的使用变得非常精确。下面我们来一步一步地讲解这些选择器并看看在其他语...

  • AjaxPro的简单登陆应用

    自己用AjaxPro做了一个简单登陆,应用AjaxPro需要在配置文件中做修改 在system.web/system.web标签对中添加如下代码 httpHan...

  • AjaxPro绑定分页

    ajax一直与数据控件没有配合起来,因此对操作这方面不是很方便!下面帖出一种方式给与参考 // JScript 文件 var PerPage = 8;//定义每...

  • 用无刷新技术,函数回调来实现无刷新短信

    第一步:实现 ICallbackEventHandler 接口 ICallbackEventHandler接口位于System.Web.UI命名空间下。在bet...