zoukankan      html  css  js  c++  java
  • asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现

      我在这里将jQuery Ajax 调用Aspx.Net WebService 的几个常用的方法做了一个整理,提供给正在找这方面内容的程序员,希望能给学习jQuery的朋友一点帮助,可以直接复制代码运行。

      运行的效果及页面如下:

     

    index.aspx代码:

     

      1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication5.index" %>
      2 
      3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      4 <html xmlns="http://www.w3.org/1999/xhtml">
      5 <head id="Head1" runat="server">
      6     <title></title>
      7     <script src="jquery-1.7.2.min.js" type="text/javascript"></script>
      8 
      9     <style type="text/css">
     10     .hover
     11     {
     12       cursor: pointer; /*小手*/
     13       background: #ffc; /*背景*/
     14     }
     15     .button
     16     {
     17        150px;
     18       float: left;
     19       text-align: center;
     20       margin: 10px;
     21       padding: 10px;
     22       border: 1px solid #888;
     23     }
     24     #dictionary
     25     {
     26       text-align: center;
     27       font-size: 18px;
     28       clear: both;
     29       border-top: 3px solid #888;
     30     }
     31     #loading
     32     {
     33       border: 1px #000 solid;
     34       background-color: #eee;
     35       padding: 20px;
     36       margin: 100px 0 0 200px;
     37       position: absolute;
     38       display: none;
     39     }
     40     #switcher
     41     {
     42     }
     43   </style>
     44     <script type="text/javascript">
     45               //无参数调用
     46         $(document).ready(function () {
     47             $('#btn1').click(function () {
     48                 $.ajax({
     49                     type: "POST", //访问WebService使用Post方式请求
     50                     contentType: "application/json", //WebService 会返回Json类型
     51                     url: "WebService1.asmx/HelloWorld", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
     52                     data: "{}", //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到   
     53                     dataType: 'json',
     54                     success: function (result) { //回调函数,result,返回值
     55                         $('#dictionary').append(result.d);
     56                     }
     57                 });
     58             });
     59         });
     60         //有参数调用
     61         $(document).ready(function () {
     62             $("#btn2").click(function () {
     63                 $.ajax({
     64                     type: "POST",
     65                     contentType: "application/json",
     66                     url: "WebService1.asmx/GetWish",
     67                     data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}",
     68                     dataType: 'json',
     69                     success: function (result) {
     70                         $('#dictionary').append(result.d);
     71                     }
     72                 });
     73             });
     74         });
     75         //返回集合(引用自网络,很说明问题)
     76         $(document).ready(function () {
     77             $("#btn3").click(function () {
     78                 $.ajax({
     79                     type: "POST",
     80                     contentType: "application/json",
     81                     url: "WebService1.asmx/GetArray",
     82                     data: "{i:10}",
     83                     dataType: 'json',
     84                     success: function (result) {
     85                         $(result.d).each(function () {
     86                             //alert(this);
     87                             $('#dictionary').append(this.toString() + " ");
     88                             //alert(result.d.join(" | "));
     89                         });
     90                     }
     91                 });
     92             });
     93         });
     94         //返回复合类型
     95         $(document).ready(function () {
     96             $('#btn4').click(function () {
     97                 $.ajax({
     98                     type: "POST",
     99                     contentType: "application/json",
    100                     url: "WebService1.asmx/GetClass",
    101                     data: "{}",
    102                     dataType: 'json',
    103                     success: function (result) {
    104                         $(result.d).each(function () {
    105                             //alert(this);
    106                             $('#dictionary').append(this['ID'] + " " + this['Value']);
    107                             //alert(result.d.join(" | "));
    108                         });
    109                     }
    110                 });
    111             });
    112         });
    113         //返回DataSet(XML)
    114         $(document).ready(function () {
    115             $('#btn5').click(function () {
    116                 $.ajax({
    117                     type: "POST",
    118                     url: "WebService1.asmx/GetDataSet",
    119                     data: "{}",
    120                     dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
    121                     success: function (result) {
    122                         //演示一下捕获
    123                         try {
    124                             $(result).find("Table1").each(function () {
    125                                 $('#dictionary').append($(this).find("ID").text() + " " + $(this).find("Value").text());
    126                             });
    127                         }
    128                         catch (e) {
    129                             alert(e);
    130                             return;
    131                         }
    132                     },
    133                     error: function (result, status) { //如果没有上面的捕获出错会执行这里的回调函数
    134                         if (status == 'error') {
    135                             alert(status);
    136                         }
    137                     }
    138                 });
    139             });
    140         });
    141         //Ajax 为用户提供反馈,利用ajaxStart和ajaxStop 方法,演示ajax跟踪相关事件的回调,他们两个方法可以添加给jQuery对象在Ajax前后回调
    142         //但对与Ajax的监控,本身是全局性的
    143         $(document).ready(function () {
    144             $('#loading').ajaxStart(function () {
    145                 $(this).show();
    146             }).ajaxStop(function () {
    147                 $(this).hide();
    148             });
    149         });
    150         // 鼠标移入移出效果,多个元素的时候,可以使用“,”隔开
    151         $(document).ready(function () {
    152             $('div.button').hover(function () {
    153                 $(this).addClass('hover');
    154             }, function () {
    155                 $(this).removeClass('hover');
    156             });
    157         });
    158     
    159     
    160     </script>
    161 </head>
    162 <body>
    163     <form id="form1" runat="server">
    164     <div id="switcher">
    165         <h2>
    166             jQuery 的WebServices 调用</h2>
    167         <div class="button" id="btn1">
    168             HelloWorld</div>
    169         <div class="button" id="btn2">
    170             传入参数</div>
    171         <div class="button" id="btn3">
    172             返回集合</div>
    173         <div class="button" id="btn4">
    174             返回复合类型</div>
    175         <div class="button" id="btn5">
    176             返回DataSet(XML)</div>
    177     </div>
    178     <div id="loading">
    179         服务器处理中,请稍后。
    180     </div>
    181     <div id="dictionary">
    182     </div>
    183     </form>
    184 </body>
    185 </html>

    WebService1.asmx.cs中代码:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Services;
     6 using System.Data;
     7 
     8 namespace WebApplication5
     9 {
    10     /// <summary>
    11     /// WebService1 的摘要说明
    12     /// </summary>
    13     [WebService(Namespace = "http://tempuri.org/")]
    14     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    15     [System.ComponentModel.ToolboxItem(false)]
    16     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    17      [System.Web.Script.Services.ScriptService]
    18     public class WebService1 : System.Web.Services.WebService
    19     {
    20 
    21         [WebMethod]
    22         public string HelloWorld()
    23         {
    24             return "Hello World";
    25         }
    26         /// <summary>
    27     /// 带参数
    28     /// </summary>
    29     /// <param name="value1"></param>
    30     /// <param name="value2"></param>
    31     /// <param name="value3"></param>
    32     /// <param name="value4"></param>
    33     /// <returns></returns>
    34     [WebMethod]
    35     public string GetWish(string value1, string value2, string value3, int value4)
    36     {
    37       return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4);
    38     }
    39     /// <summary>
    40     /// 返回集合
    41     /// </summary>
    42     /// <param name="i"></param>
    43     /// <returns></returns>
    44     [WebMethod]
    45     public List<int> GetArray(int i)
    46     {
    47       List<int> list = new List<int>();
    48       while (i >= 0)
    49       {
    50         list.Add(i--);
    51       }
    52       return list;
    53     }
    54     /// <summary>
    55     /// 返回一个复合类型
    56     /// </summary>
    57     /// <returns></returns>
    58     [WebMethod]
    59     public Class1 GetClass()
    60     {
    61       return new Class1 { ID = "1", Value = "牛年大吉" };
    62     }
    63     /// <summary>
    64     /// 返回XML
    65     /// </summary>
    66     /// <returns></returns>
    67     [WebMethod]
    68     public DataSet GetDataSet()
    69     {
    70       DataSet ds = new DataSet();
    71       DataTable dt = new DataTable();
    72       dt.Columns.Add("ID", Type.GetType("System.String"));
    73       dt.Columns.Add("Value", Type.GetType("System.String"));
    74       DataRow dr = dt.NewRow();
    75       dr["ID"] = "1";
    76       dr["Value"] = "新年快乐";
    77       dt.Rows.Add(dr);
    78       dr = dt.NewRow();
    79       dr["ID"] = "2";
    80       dr["Value"] = "万事如意";
    81       dt.Rows.Add(dr);
    82       ds.Tables.Add(dt);
    83       return ds;
    84     }
    85   }
    86   //自定义的类,只有两个属性
    87   public class Class1
    88   {
    89     public string ID { get; set; }
    90     public string Value { get; set; }
    91   }
    92     }

     

  • 相关阅读:
    bzoj 1030 [JSOI2007]文本生成器
    Swift 学习笔记 (闭包)
    Swift 学习笔记 (函数)
    HTML 学习笔记 JQueryUI(Interactions,Widgets)
    HTML 学习笔记 JQuery(表单,表格 操作)
    HTML 学习笔记 JQuery(animation)
    HTML 学习笔记 JQuery(盒子操作)
    HTML 学习笔记 JQuery(事件)
    HTML 学习笔记 JQuery(DOM 操作3)
    HTML 学习笔记 JQuery(DOM 操作2)
  • 原文地址:https://www.cnblogs.com/dyhdream/p/3096401.html
Copyright © 2011-2022 走看看