ajax+webservice

版本為AJAX November CTP

三個示例分別為:
1 帶參數的WS方法
2 不帶參數的WS方法
3 參數類型為DataTable的WS方法

一、WebMethod
注意要點:
1 WebMethod類需要添加命名空間 Microsoft.Web.Script.Services,此空間需要引用Microsoft.Web.Preview.dll
2 類聲明加入標簽 [ScriptService]
3 在Asp.net 2.0里可以直接用DataTable作為返回類型了,但是需要在Web.config文件添加序列化轉換器的屬性。DataSet、DataTable、DataRow均有轉換器

<system.web.extensions>
??? <scripting>
????? <webServices>
??????? <jsonSerialization>
????????? <converters>
??????????? <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>
??????????? <add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>
??????????? <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>
????????? </converters>
??????? </jsonSerialization>
????? </webServices>
??? </scripting>
</system.web.extensions>
WEB服務1:WS1

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;
using System.Data;
/** <summary>
/// WS1 的摘要說明
/// </summary>
[WebService(Namespace = "
http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS1 : System.Web.Services.WebService {

??? public WS1 () {

??????? //如果使用設計的組件,請取消注釋以下行
??????? //InitializeComponent();
??? }

??? [WebMethod]
??? public string ServerTime()
??? {
??????? return String.Format("now: {0}", DateTime.Now);
??? }

??? [WebMethod]
??? public DataTable GetDataTable()
??? {
??????? DataTable dt = new DataTable("Person");

??????? dt.Columns.Add(new DataColumn("Name", typeof(string)));
??????? dt.Columns.Add(new DataColumn("LastName", typeof(string)));
??????? dt.Columns.Add(new DataColumn("Email", typeof(string)));

??????? dt.Rows.Add("kui", "he", "hekui168@163.com");
??????? dt.Rows.Add("ren", "chao", "
chaoren888@163.com");

??????? return dt;
??? }
}


WEB服務2:WS

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;

/** <summary>
/// WS 的摘要說明
/// </summary>
[WebService(Namespace = "
http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS : System.Web.Services.WebService {

??? public WS () {

??????? //如果使用設計的組件,請取消注釋以下行
??????? //InitializeComponent();
??? }

??? [WebMethod]
??? [ScriptMethod(UseHttpGet = true)]
??? public string HelloWorld(String query)
??? {
??????? string inputString = Server.HtmlEncode(query);
??????? if (!String.IsNullOrEmpty(inputString))
??????? {
??????????? return String.Format("hello, {0}. ", inputString);
??????? }
??????? else
??????? {
??????????? return "query string is null or empty";
??????? }
??? }

}


二、前臺頁面:
注意要點:
需要使用的后臺WebService的方法均設置在如下位置

??????? <asp:ScriptManager ID="ScriptManager1" runat="server">
??????????? <Services>
??????????????? <asp:ServiceReference Path="~/WS.asmx" />
??????????????? <asp:ServiceReference Path="~/WS1.asmx" />
??????????? </Services>
??????? </asp:ScriptManager>
Default頁面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml">
<head runat="server">
??? <title>Untitled Page</title>

??? <script language="javascript" type="text/javascript" src="js.js">
??? </script>

</head>
<body>
??? <form id="form1" runat="server">
??????? <asp:ScriptManager ID="ScriptManager1" runat="server">
??????????? <Services>
??????????????? <asp:ServiceReference Path="~/WS.asmx" />
??????????????? <asp:ServiceReference Path="~/WS1.asmx" />
??????????? </Services>
??????? </asp:ScriptManager>
??????? <div>
??????????? <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="dd();return false;" />
??????????? <div id="time">
??????????? </div>
??????????? <div id="List1">
??????????????? <asp:DropDownList ID="ddl1" runat="server" Width="187px">
??????????????? </asp:DropDownList>
??????????????? </div>
???????????
??????? </div>
??? </form>
</body>
</html>

三、JavaScript程序:
注意要點:
AJAX November CTP 需要用 eval() 方法將其轉換成一個DataTable對象(并且要裁掉最前面的"("),而AJAX December CTP 支持以下方法轉換“Sys.Preview.Data.DataTable.parseFromJson(result)”

??? function dd()
??? {
??????? WS.HelloWorld(??
???????????????????????? 'hekui',
???????????????????????? function(result)
???????????????????????? {
??????????????????????????? alert(result);
???????????????????????? }
???????????????????? );
??????? WS1.ServerTime(
???????????????????????? function(result)
???????????????????????? {
??????????????????????????? alert(result);
??????????????????????????? var divTime = document.getElementById("time");
??????????????????????????? divTime.innerHTML = result;
???????????????????????? }
???????????????????? );
?????? WS1.GetDataTable(
???????????????????????? function(result)
???????????????????????? {
??????????????????????????? // 獲取到下拉框控件
??????????????????????????? var List = document.getElementById("ddl1");
??????????????????????????????????????????????????????
??????????????????????????? //AJAX November CTP 需要用 eval() 方法將其轉換成一個DataTable對象(并且要裁掉最前面的"(")
??????????????????????????? var Text= result.dataArray.substring(0,result.dataArray.length -1);???????????
??????????????????????????? var Table = eval( Text);
???????????????????????????
??????????????????????????? //AJAX December CTP 支持以下方法轉換
//??????????????????????????? var Table = Sys.Preview.Data.DataTable.parseFromJson(result);
???????????????????????????
??????????????????????????? //清除下拉框原有列表項
??????????????????????????? for (x=List.options.length-1; x > -1; x--)
??????????????????????????? {
??????????????????????????????? List.remove(0);
??????????????????????????? }
???????????????????????????
??????????????????????????? //從獲取的DataTable添加數據到下拉框列表項
??????????????????????????? for (x=0; x < Table.length; x++ )
??????????????????????????? {
??????????????????????????????? //獲取每一行
??????????????????????????????? var Row = Table[x];?????????
??????????????????????????????? //創建一個列表項?????????????????
??????????????????????????????? var option = document.createElement("option");
??????????????????????????????? //列表項顯示文本賦值
??????????????????????????????? option.text = Row.Name + " " + Row.LastName;??
??????????????????????????????? //列表項選項值賦值
??????????????????????????????? option.value = Row.Email;?????????????????????

??????????????????????????????? //判斷瀏覽器類型,進行項目添加????
??????????????????????????????? if ( window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
?????????????????????????????????? List.add(option);
??????????????????????????????? else
?????????????????????????????????? List.add(option, null);?????????
??????????????????????????? }
???????????????????????? }
?????????????????????? );
??? }

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389033.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389033.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389033.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習數據擴張_適用于少量數據的深度學習結構

作者&#xff1a;Gorkem Polat編譯&#xff1a;ronghuaiyang導讀一些最常用的few shot learning的方案介紹及對比。傳統的CNNs (AlexNet, VGG, GoogLeNet, ResNet, DenseNet…)在數據集中每個類樣本數量較多的情況下表現良好。不幸的是&#xff0c;當你擁有一個小數據集時&…

時間管理

時間管理 時間管理是運用策略和技術&#xff0c;幫助你盡可能有效地利用你的時間。 不僅僅是要將時間用在正確的地方&#xff0c; 而且還要將盡可能有效地加以利用。 目前是如何利用時間的&#xff1a; 意識是時間管理的先決條件。目標提供路線圖。選擇是難點。 意識 第一條…

基于邊緣計算的實時績效_基于績效的營銷中的三大錯誤

基于邊緣計算的實時績效We’ve gone through 20% of the 21st century. It’s safe to say digitalization isn’t a new concept anymore. Things are fully or at least mostly online, and they tend to escalate in the digital direction. That’s why it’s important to…

本線程鉤子

鉤子其實就是調用一下API而已&#xff1a; 1、安裝鉤子&#xff1a;   SetWindowsHookEx 函數原形&#xff1a;HHOOK SetWindowsHookEx( int idHook, // 鉤子類型&#xff0c; HOOKPROC lpfn, // 鉤子函數地址…

Maven Web項目解決跨域問題

跨域問題目前筆者所用到的方案大致有三種:jsonp,SpringMVC 4以上注解方式和cros三方過濾器。 Jsonp JSONP(JSON with Padding)是一個非官方的協議&#xff0c;它允許在服務器端集成Script tags返回至客戶端&#xff0c;通過javascript callback的形式實現跨域訪問&#xff08;這…

為什么Facebook的API以一個循環作為開頭?

作者 | Antony Garand譯者 | 無明如果你有在瀏覽器中查看過發給大公司 API 的請求&#xff0c;你可能會注意到&#xff0c;JSON 前面會有一些奇怪的 JavaScript&#xff1a;為什么他們會用這幾個字節來讓 JSON 失效&#xff1f;為了保護你的數據 如果沒有這些字節&#xff0c;那…

城市軌道交通運營票務管理論文_城市軌道交通運營管理專業就業前景怎么樣?中職優選告訴你...

??城市軌道交通運營管理專業&#xff0c;專業就業前景怎么樣&#xff1f;就業方向有哪些&#xff1f;有很多同學都感覺很迷忙&#xff0c;為了讓更多的同學們了解城市軌道交通運營管理專業的就業前景與就業方向&#xff0c;整理出以下內容希望可以幫助同學們。城市軌道交通運…

計算機視覺對掃描文件分類 OCR

通過計算機視覺對掃描文件分類 一種解決掃描文檔分類問題的深度學習方法 在數字經濟時代&#xff0c; 銀行、保險、治理、醫療、法律等部門仍在處理各種手寫票據和掃描文件。在業務生命周期的后期&#xff0c; 手動維護和分類這些文檔變得非常繁瑣。 對這些非機密文檔進行簡…

從錢龍數據中讀取股票權息信息導入到數據庫

從錢龍數據中讀取股票權息信息導入到數據庫 前面寫了如果讀股票代碼和日線數據&#xff0c;下面是如何讀股票的權息信息。 錢龍中權息數據存儲在QLDATA/history/shase/weight和QLDATA/history/sznse/weight目錄下&#xff0c;每個文件對應一只股票。 與前文一樣&#xff0c;只貼…

笑話生成器_爸爸笑話發生器

笑話生成器(If you’re just here for the generated jokes, scroll down to the bottom!)(如果您只是在這里生成笑話&#xff0c;請向下滾動到底部&#xff01;) I thought: what is super easy to build, yet would still get an approving chuckle if someone found it on …

AWS Amplify Console:賦予應用程序快速部署的能力

AWS re:Invent 2018大會發布了很多新功能和服務&#xff0c;包括新的AWS Amplify Console&#xff0c;一種針對移動Web應用程序的持續部署服務。 AWS Amplify Console承諾可以支持快速發布新功能&#xff0c;避免在部署應用程序時停機&#xff0c;并降低同時更新應用程序客戶端…

機器學習實踐二 -多分類和神經網絡

本次練習的任務是使用邏輯歸回和神經網絡進行識別手寫數字&#xff08;form 0 to 9, 自動手寫數字問題已經應用非常廣泛&#xff0c;比如郵編識別。 使用邏輯回歸進行多分類分類 練習2 中的logistic 回歸實現了二分類分類問題&#xff0c;現在將進行多分類&#xff0c;one vs…

Hadoop 倒排索引

倒排索引是文檔檢索系統中最常用的數據結構&#xff0c;被廣泛地應用于全文搜索引擎。它主要是用來存儲某個單詞&#xff08;或詞組&#xff09;在一個文檔或一組文檔中存儲位置的映射&#xff0c;即提供了一種根據內容來查找文檔的方式。由于不是根據文檔來確定文檔所包含的內…

koa2異常處理_讀 koa2 源碼后的一些思考與實踐

koa2的特點優勢什么是 koa2Nodejs官方api支持的都是callback形式的異步編程模型。問題&#xff1a;callback嵌套問題koa2 是由 Express原班人馬打造的&#xff0c;是現在比較流行的基于Node.js平臺的web開發框架&#xff0c;Koa 把 Express 中內置的 router、view 等功能都移除…

Bind9的dns解析服務

前言隨著原中國電信集團按南北地域分家&#xff0c;新的中國電信和網通集團隨即成立&#xff0c;互聯網的骨干網也被一分為二了&#xff0c;北有網通、南有電信。從此&#xff0c;細心的網民可以發現&#xff0c;有些經常訪問的網站速度一下子慢了下來&#xff0c;有時候還有訪…

上凸包和下凸包_使用凸包聚類

上凸包和下凸包I recently came across the article titled High-dimensional data clustering by using local affine/convex hulls by HakanCevikalp in Pattern Recognition Letters. It proposes a novel algorithm to cluster high-dimensional data using local affine/c…

sqlmap手冊

sqlmap用戶手冊 | by WooYun知識庫 sqlmap用戶手冊 當給sqlmap這么一個url (http://192.168.136.131/sqlmap/mysql/get_int.php?id1) 的時候&#xff0c;它會&#xff1a; 1、判斷可注入的參數 2、判斷可以用那種SQL注入技術來注入 3、識別出哪種數據庫 4、根據用戶選擇&…

幸運三角形 南陽acm491(dfs)

幸運三角形 時間限制&#xff1a;1000 ms | 內存限制&#xff1a;65535 KB 難度&#xff1a;3描述話說有這么一個圖形&#xff0c;只有兩種符號組成&#xff08;‘’或者‘-’&#xff09;&#xff0c;圖形的最上層有n個符號&#xff0c;往下個數依次減一&#xff0c;形成倒置…

jsforim

var isMouseDownfalse;var isFirsttrue;var centerdivObj;var ndiv1;var ndiv2;var ndiv3;var kjX;var kjY; window.οnerrοrfunction(){ return true;}; var thurlhttp://qq.jutoo.net/;var wzId12345; function createDiv(){ var sWscreen.width; var sHscree…

決策樹有框架嗎_決策框架

決策樹有框架嗎In a previous post, I mentioned that thinking exhaustively is exhausting! Volatility and uncertainty are ever present and must be factored into our decision making — yet, we often don’t have the time or data to properly account for it.在上一…