• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            使用 jquery + json 實現(xiàn)ajax的方法

                 在使用Jquery + json 的過程中由于一個小問題沒有注意到,程序一直有錯誤。在網(wǎng)上找了很多JSON方面的文章但基本都是很簡單的舉例,所以我覺得有必要寫一個完整的JQuery + json 實現(xiàn)AJAX的例子,如果可以幫到別人那是最好,否則就當(dāng)是給自己備忘了吧。

                 好啦,進(jìn)入正題吧。

                 關(guān)于JSON的介紹網(wǎng)上有很多在這里只簡單介紹一下Json表示數(shù)據(jù)的格式:     

            ?  對象是屬性、值對的集合。一個對象的開始于“{”,結(jié)束于“}”。每一個屬性名和值間用“:”提示,屬性間用“,”分隔。

            ?  數(shù)組是有順序的值的集合。一個數(shù)組開始于"[",結(jié)束于"]",值之間用","分隔。

            ?  值可以是引號里的字符串、數(shù)字、true、falsenull,也可以是對象或數(shù)組。這些結(jié)構(gòu)都能嵌套。

            ?  字符串和數(shù)字的定義和CJava基本一致。

             

            下面我們使用Ajax獲取訂單列表數(shù)據(jù)后格式化為Json的格式后輸出。首先我們建立data.ashx文件作為數(shù)據(jù)請求的處理頁面:

            data.ashx 文件處理請求的方法: 

            clip_image001clip_image002Code
            1 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__"];//頁數(shù)
            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.待發(fā)單, (int)Arguments.Named.OrderStatus.下發(fā)中, (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);  //格式化數(shù)據(jù)為Json的方法             
            37                 context.Response.Write(result.ToString());
            38                 break;
            39         }
            40     }
            41 
            42     ///<Summary>
            43     ///將數(shù)據(jù)構(gòu)造為Json格式
            44     ///數(shù)據(jù)構(gòu)造后的格式為:{order:[{OrderCode:200901010001,Status:下發(fā)單,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; //計算總頁數(shù)
            58         result.Append("],Count:\""+pagenum+"\"}");
            59     }

             

            數(shù)據(jù)處理頁面寫好了,下面我們來寫一個前臺顯示頁面(display.aspx),在頁面中我們使用Jquery提供的.getJSON方式來訪問數(shù)據(jù)頁面。

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

            url (String) : 發(fā)送請求地址。

            data (Map) : (可選) 待發(fā)送 Key/value 參數(shù)。

            callback (Function) : (可選) 載入成功時回調(diào)函數(shù)。

            前臺顯示頁面文件 display.aspx的方法:

             

            clip_image001clip_image002Code
            1 Code
            2   function GetData(i)//取值方法,參數(shù)i表示頁數(shù)
            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) //循環(huán)獲取返回值Order列表中的數(shù)據(jù)
            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中獲取總頁數(shù)           
            18          }
            19         

             

            好了,就這兩步就基本搞定了。是不是很簡單啊。

            由于JsonJavascript的一個子集,所以不論是使用方式還是執(zhí)行效率相信都不會讓你失望的。

             

            posted on 2009-07-28 11:25 肥仔 閱讀(1438) 評論(0)  編輯 收藏 引用 所屬分類: Web-前臺

            亚洲精品无码久久久久去q | 久久99精品久久久久久秒播| 久久久久久免费一区二区三区| 亚洲国产精品人久久| 久久精品国产一区二区三区| 日韩中文久久| 久久99精品国产麻豆| 久久精品国产亚洲7777| 伊人精品久久久久7777| 国产成人久久激情91| 久久精品国产亚洲av瑜伽| 麻豆精品久久久久久久99蜜桃| 久久国产精品99精品国产| 久久久久这里只有精品| 新狼窝色AV性久久久久久| AAA级久久久精品无码区| 国产精品久久久久久久app | 久久99精品久久久大学生| 国产精品久久波多野结衣| 中文精品99久久国产| 国产精品久久久久久福利漫画 | 国产精品日韩深夜福利久久| 久久精品中文字幕一区| 国产AV影片久久久久久| 亚洲精品乱码久久久久久久久久久久 | 激情综合色综合久久综合| 亚洲AV无一区二区三区久久| 国产日韩欧美久久| 久久久精品2019免费观看| 亚洲国产精品综合久久网络| 国产精品视频久久| 久久精品免费一区二区| 久久99精品国产麻豆婷婷| 狠狠色婷婷久久一区二区三区| 亚洲国产精品无码久久青草 | 国产精品亚洲综合久久| 91久久精品电影| a级成人毛片久久| 日韩精品久久无码人妻中文字幕| 日本加勒比久久精品| 精品水蜜桃久久久久久久|