一直在關(guān)注AjaxControlToolkit的變化,期待著隨著時(shí)間的推移這個(gè)工具包會(huì)日臻完善,不過(guò)就實(shí)際項(xiàng)目中應(yīng)用的效果來(lái)講,還是有點(diǎn)失望的。問(wèn)題最多的兩個(gè)控件是ModalPopup和Slider. AjaxControlToolkit的BUG改進(jìn)顯然沒有我期望的那么快,最新版本里面是這樣說(shuō)的: Version 1.0.11119.0 for ASP.NET AJAX version 1.0 and .NET Framework 2.0 (No changes from 1.0.10920) 問(wèn)題總要解決,生活還在繼續(xù),既然AjaxControlToolkit差強(qiáng)人意 那就回頭看看基于Asp.net Ajax框架我們直接使用腳本可以做什么?
翻看Ajax客戶端的文檔,的確要是看完也需些時(shí)日了,不禁想起《神雕俠侶》中小龍女和楊過(guò)被李莫愁點(diǎn)穴困于墓室里突然看到《九陰真經(jīng)》: 她轉(zhuǎn)念又想:“我縱然通了穴道,但打不過(guò)師姊,仍是無(wú)用。”當(dāng)即細(xì)看室頂經(jīng)文,要找一門即知即用的武功,一出手就將李莫愁制住,但約略瞥去,每一項(xiàng)皆是艱深繁復(fù),料想就算是最易的功夫,也須數(shù)十日方能練成... ...”
是的,就如《九陰真經(jīng)》,文檔有時(shí)間一定要好好研習(xí),如果沒有足夠的時(shí)間,最好能沿著一條脈絡(luò)抽取出自己所需;
本文簡(jiǎn)單描述了:
1.javascript 如何調(diào)用WebService
2.javascript 如何調(diào)用服務(wù)器端方法
3.javascript 如何用POST方式向服務(wù)器端提交數(shù)據(jù)
4.javascript 如何用Get方式向服務(wù)器端提交數(shù)據(jù)
2.javascript 如何調(diào)用服務(wù)器端方法
服務(wù)器端代碼:
1 using System;
2 using System.Configuration;
3 using System.Data;
4 using System.Web;
5 using System.Web.Security;
6 using System.Web.UI;
7 using System.Web.UI.HtmlControls;
8 using System.Web.UI.WebControls;
9 using System.Web.UI.WebControls.WebParts;
10 using System.Web.Services;
11
12 public partial class _Default : System.Web.UI.Page
13 {
14 protected void Page_Load(object sender, EventArgs e)
15 {
16
17 }
18
19 [WebMethod]
20 public static string ShowDetailData(string user)
21 {
22 return user+"你好!你知道下面的文字選自哪里么?<br/>"+ "郭靖知道師父雖然摔下,并不礙事,但歐陽(yáng)鋒若乘勢(shì)追擊,后著可凌厲之極,當(dāng)下叫道:“看招!”左腿微屈,右掌劃了個(gè)圓圈,平推出去,正是降龍十八掌中的“亢龍有悔”。這一招他日夕勤練不輟,初學(xué)時(shí)便已非同小可,加上這十余年苦功,實(shí)已到爐火純青之境,初推出去時(shí)看似輕描淡寫,但一遇阻力,能在剎時(shí)之間連加一十三道后勁,一道強(qiáng)似一道,重重疊疊,直是無(wú)堅(jiān)不摧、無(wú)強(qiáng)不破。這是他從九陰真經(jīng)中悟出來(lái)的妙境??v是洪七公當(dāng)年,單以這一招而論,也無(wú)如此精奧的造詣。";
23 }
24 }
25 客戶端代碼:
1 <script type="text/javascript">
2 //下面的腳本調(diào)用WebService取回?cái)?shù)據(jù)顯示在webserviceDataDiv
3
4 <script type="text/javascript">
5 function getDataByServerMethod()
6 {
7 PageMethods.ShowDetailData(get('Text1').value,OnGetDataFromWebMethodCompleted);
8 }
9 function OnGetDataFromWebMethodCompleted(data)
10 {
11 get("webserviceDataDiv").innerHTML=data;
12 }
13 </script>
14
15 <input id="Text1" type="text" value="me_sa" />
16 <input id="Button3" type="button" value="GetDataFromWebService" onclick="getDataFromWebService();" />
17 <input id="Button4" type="button" value="getDataByServerMethod" onclick="getDataByServerMethod();" />
18 <div id="webserviceDataDiv">
19 </div>
3.javascript 如何用POST方式向服務(wù)器端提交數(shù)據(jù) 4.javascript 如何用Get方式向服務(wù)器端提交數(shù)據(jù)
客戶端:
1 <script type="text/javascript">
2 //下面的代碼使用Post和Get兩種方式向服務(wù)器提交數(shù)據(jù)
3 //這里做了一個(gè)簡(jiǎn)單的重構(gòu),兩種方式調(diào)用的時(shí)候只要傳遞HttpVerb就可以了
4 function getData(verb)
5 {
6 var webRequest=new Sys.Net.WebRequest();
7 if (verb=="POST")
8 {
9 webRequest.set_url("ProcessRequest.aspx");
10 }
11 else
12 {
13 webRequest.set_url("ProcessRequest.aspx?AID="+get("aidTextbox").value);
14 }
15 webRequest.add_completed(OnCompleted);
16
17 webRequest.set_httpVerb(verb);
18 var requestBody="AID="+get("aidTextbox").value;
19 webRequest.set_body(requestBody);
20 webRequest.get_headers()["Conten_Length"]=requestBody.length;
21 webRequest.invoke();
22 }
23 function getDataByPost()
24 {
25 getData("POST");
26 }
27 function getDataByGet()
28 {
29 getData("Get");
30 }
31 //完成之后調(diào)用的參數(shù) 注意一下參數(shù)
32 function OnCompleted(executor,eventArgs)
33 {
34 if(executor.get_responseAvailable())
35 {
36 get("data").innerHTML=executor.get_responseData();
37 }
38 }
39 </script>
40
41 <div id="data">
42 </div>
43 <input id="aidTextbox" type="text" value="me_sa" />
44 <input id="Button1" type="button" value="Post" onclick="javascript:getDataByPost();" />
45 <input id="Button2" type="button" value="Get" onclick="javascript:getDataByGet();" />
ProcessRequest.aspx服務(wù)器端代碼:
1 using System;
2 using System.Collections;
3 using System.Configuration;
4 using System.Data;
5 using System.Web;
6 using System.Web.Security;
7 using System.Web.UI;
8 using System.Web.UI.HtmlControls;
9 using System.Web.UI.WebControls;
10 using System.Web.UI.WebControls.WebParts;
11
12 public partial class ProcessRequest : System.Web.UI.Page
13 {
14 protected void Page_Load(object sender, EventArgs e)
15 {
16 string temp = "";
17 Response.Clear();
18 if (!string.IsNullOrEmpty(Request.Form["AID"]))
19 {
20 temp =DateTime.Now.ToString()+ " POST過(guò)來(lái)的數(shù)據(jù)是:" + Request.Form["AID"].ToString();
21 }
22 if (!string.IsNullOrEmpty(Request.QueryString["AID"]))
23 {
24 temp = DateTime.Now.ToString() + "GET過(guò)來(lái)的數(shù)據(jù)是:" + Request.QueryString["AID"].ToString();
25 }
26
27 Response.Write(temp);
28 Response.End();
29
30 }
31 }
32
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。