乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Jquery利用ajax調(diào)用asp.net webservice的各種數(shù)據(jù)類(lèi)型(總結(jié)篇)

       CoCO-Ebook 2013-09-25
      23                     //data: str,
      24                     data: str2,
      25                     success: function (response) {
      26                         //返回的對(duì)象數(shù)組
      27                         var arr = response.d;
      28                         //循環(huán)
      29                         $.each(arr, function (index, va) {
      30                             //得對(duì)象
      31                             var obj = va;
      32                             var str = "姓名:" + obj.Name + " 年紀(jì):" + obj.Age + " 是男人:" + obj.IsMan + "  ";
      33                             $('#div_txt').append("第" + index + "項(xiàng)值=" + str + "   ");
      34                         })
      35                     }
      36                 }
      37
      38                 $.ajax(options)
      39             })
      復(fù)制代碼

      運(yùn)行結(jié)果:

      h.返回Dictionary

      復(fù)制代碼
       1         [WebMethod]
       2         public System.Collections.Generic.Dictionary<string , ClassA> GetDictionary ( )
       3         {
       4             //鍵必須為字符型,要不會(huì)報(bào)錯(cuò)
       5             Dictionary<string , ClassA> list = new Dictionary<string , ClassA> ( );
       6 
       7             list.Add ( "a" , new ClassA ( )
       8             {
       9                 Name = "lele" ,
      10                 Age = 18 ,
      11                 IsMan = false
      12             } );
      13 
      14             list.Add ( "b" , new ClassA ( )
      15             {
      16                 Name = "王二" ,
      17                 Age = 28 ,
      18                 IsMan = true
      19             } );
      20 
      21             return list;
      22         }
      復(fù)制代碼
      復(fù)制代碼
       1             $("#Button_Dictionary").click(function () {
       2                 var options = {
       3                     url: "WS.asmx/GetDictionary",
       4                     contentType: "application/json; charset=utf-8",
       5                     type: "POST",
       6                     dataType: "json",
       7                     success: function (response) {
       8                         //返回的對(duì)象數(shù)組
       9                         var arr = response.d;
      10                         //循環(huán)
      11                         $.each(arr, function (index, va) {
      12                             //得對(duì)象
      13                             var obj = va;
      14                             var str = "姓名:" + obj.Name + " 年紀(jì):" + obj.Age + " 是男人:" + obj.IsMan + "  ";
      15                             $('#div_txt').append("第" + index + "項(xiàng)值=" + str + "   ");
      16                         })
      17                     },
      18                     error: function (XMLHttpRequest, textStatus, errorThrown) {
      19                         // 通常 textStatus 和 errorThrown 之中
      20                         alert(textStatus);
      21                     }
      22                 }
      23 
      24                 $.ajax(options)
      25             })
      復(fù)制代碼

      說(shuō)明:正常情況下,Dictionary Hashtable ListDictionary 這3個(gè)類(lèi)型都不可以在WebService的方法中擔(dān)任參數(shù)和方法返回值,沒(méi)想到這次jquery竟然調(diào)用成功!小小驚喜發(fā)現(xiàn)!

      特別提示:Dictionary的鍵值必須是字符,否則會(huì)報(bào)錯(cuò)

      運(yùn)行結(jié)果:

      i.返回DataSet

      本文為DataSet演示了3種調(diào)用方式

      返回DataSet第1種方式:

      復(fù)制代碼
       1         [WebMethod]
       2         public DataSet GetDataSet ( string name )
       3         {
       4             DataSet ds = new DataSet ( );
       5 
       6             DataTable dt = new DataTable ( );
       7             dt.Columns.Add ( "Year" , Type.GetType ( "System.Int32" ) );
       8             dt.Columns.Add ( "Value" , Type.GetType ( "System.String" ) );
       9 
      10             dt.Rows.Add ( 2011 , name + "新年快樂(lè)" );
      11             dt.Rows.Add ( 2012 , name + "萬(wàn)事如意" );
      12             dt.Rows.Add ( 2013 , name + "恭喜發(fā)財(cái)" );
      13 
      14             ds.Tables.Add ( dt );
      15 
      16             return ds;
      17         }
      復(fù)制代碼

      復(fù)制代碼
       1             //返回DataSet(第1種方式,json)
       2             $("#Buttonds_json").click(function () {
       3                 var par = { name: "東莞人民" };
       4 
       5                 var options = {
       6                     contentType: "application/json; charset=utf-8",
       7                     dataType: "json",
       8                     url: "WS.asmx/GetDataSet",
       9                     type: "POST",
      10                     data: $.toJSON(par),       //把對(duì)象序列化為json字符串
      11                     success: function (result) {
      12                         //取回來(lái)表中的行
      13                         var rows = result.d.tables[0].rows;
      14 
      15                         for (var rowIndex = 0; rowIndex < rows.length; ++rowIndex) {
      16                             $("#table1").append("<tr><td>" + rows[rowIndex]["Year"] + "</td><td>" + rows[rowIndex]["Value"] + "</td></tr>");
      17                         }
      18                     },
      19                     error: function (XMLHttpRequest, textStatus, errorThrown) {
      20                         // 通常 textStatus 和 errorThrown 之中
      21                         alert(textStatus);
      22                     }
      23                 }
      24 
      25                 $.ajax(options)
      26             })
      復(fù)制代碼

      運(yùn)行結(jié)果:

      說(shuō)明:這種方式項(xiàng)目中必須引用Microsoft.Web.Preview.dll,并且在Web.config配置文件中增加如下節(jié)點(diǎn):

      復(fù)制代碼
       1   <system.web.extensions>
       2     <scripting>
       3       <webServices>
       4         <jsonSerialization>
       5           <converters>
       6             <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter" />
       7             <add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter" />
       8             <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter" />
       9           </converters>
      10         </jsonSerialization>
      11       </webServices>
      12     </scripting>
      13   </system.web.extensions>
      復(fù)制代碼

      返回DataSet第2種方式:

      復(fù)制代碼
       1             //返回DataSet(第2種方式,xml)
       2             $("#Buttonds_xml").click(function () {
       3                 var par = { name: "東莞人民" };
       4 
       5                 var options = {
       6                     url: "WS.asmx/GetDataSet",
       7                     type: "POST",
       8                     //返回的類(lèi)型為XML 
       9                     dataType: 'xml', 
      10                     //由于不是json,這里傳遞的參數(shù)采用對(duì)象形式
      11                     data: par, 
      12                     success: function (result) {
      13                         $(result).find("Table1").each(function () {
      14                             $("#table1").append("<tr><td>" + $(this).find("Year").text() + "</td><td>" + $(this).find("Value").text() + "</td></tr>");
      15                         })
      16                     },
      17                     error: function (XMLHttpRequest, textStatus, errorThrown) {
      18                         // 通常 textStatus 和 errorThrown 之中
      19                         alert(textStatus);
      20                     }
      21                 }
      22 
      23                 $.ajax(options)
      24             })
      復(fù)制代碼

      說(shuō)明:由于采用的是xml格式調(diào)用,所以在傳遞參數(shù)時(shí),就采用對(duì)象的形式

      返回DataSet第3種方式:

      復(fù)制代碼
              [WebMethod]
              public string GetDataSetString ( List<ClassA> ClassA_Lists )
              {
                  DataSet ds = new DataSet ( );
      
                  DataTable dt = new DataTable ( );
      
                  dt.Columns.Add ( "Name" , Type.GetType ( "System.String" ) );
                  dt.Columns.Add ( "Age" , Type.GetType ( "System.Int32" ) );
                  dt.Columns.Add ( "IsMan" , Type.GetType ( "System.Boolean" ) );
      
                  foreach ( ClassA item in ClassA_Lists )
                  {
                      dt.Rows.Add ( item.Name , item.Age , item.IsMan );
                  }
      
                  ds.Tables.Add ( dt );
      
                  string str = JsonConvert.SerializeObject ( ds );
      
                  return str;
              }
      復(fù)制代碼

      復(fù)制代碼
       1            //返回DataSet(第3種方式,string)
       2             $("#ButtonDS_string").click(function () {
       3                 //ClassA_Lists是方法的參數(shù)名
       4                 var str = '{"ClassA_Lists":[{"Name":"鄧偉","Age":28,"IsMan":true },{"Name":"樂(lè)樂(lè)","Age":16,"IsMan":false }]}';
       5 
       6                 var options = {
       7                     url: "WS.asmx/GetDataSetString",
       8                     type: "POST",
       9                     contentType: "application/json; charset=utf-8",
      10                     dataType: "json",
      11                     data: str,
      12                     success: function (response) {
      13                         var obj = $.evalJSON(response.d);
      14 
      15                         var arr = obj.Table1;
      16 
      17                         //循環(huán)
      18                         $.each(arr, function (index, va) {
      19                             //得對(duì)象
      20                             var obj = va;
      21                             var str = "姓名:" + obj.Name + " 年紀(jì):" + obj.Age + " 是男人:" + obj.IsMan + "  ";
      22                             $('#div_txt').append("第" + index + "項(xiàng)值=" + str + "   ");
      23                         })
      24                     },
      25                     error: function (XMLHttpRequest, textStatus, errorThrown) {
      26                         // 通常 textStatus 和 errorThrown 之中
      27                         alert(textStatus);
      28                     }
      29                 }
      30 
      31                 $.ajax(options)
      32             })
      復(fù)制代碼

      說(shuō)明:web服務(wù)器端我利用Newtonsoft.Json.dll里面的JsonConvert.SerializeObject方法把DataSet序列化為json字符串

      jquery客戶端我利用 $.evalJSON把返回的json字符串再轉(zhuǎn)化為類(lèi)

      關(guān)于Newtonsoft.Json.dll可以參考:http://json./

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多