摘要:由Javascript呼叫Webservice產生動態選單
要做到由JavaScript呼叫Webservice的方法,並放到下拉選單的作法:
1.加入一個WebService,選擇 Web Service,檔案名稱輸入LocationService.asmx
1.1 加入 using System.Web.Script.Services;
1.2 為類別標上 [ScriptService] attribute:
[ScriptService()]
public class LocationService : System.Web.Services.WebService
1.3 撰寫可供 JavaScript 呼叫的 Web 方法:
[WebMethod]
[System.Web.Script.Services.ScriptMethod]
1.4 撰寫取得資料庫的函式,運作JSON的結構產生陣列:
02 [System.Web.Script.Services.ScriptMethod]
03 public string GetCounty(string area)
04 {
05 OleDbDataReader dr = null;
06 string json = "";
07 json = "[{text:'Please Select',value:'0'},"
08 ....
09 ....
10 json += "{text:'" + dr["name"] + "',value:'" + dr["id"] + "'}";
11 ....
12 ....
13 return json;
14 }
2.建立WebForm程式:JsCallWebService.aspx
2.1 從工具的 AJAX Extensions 面板中拉一個 ScriptManager 控制項到網頁上,然後修改其標籤內容,如下:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<services>
<asp:servicereference path="~/LocationService.asmx" />
</services>
</asp:ScriptManager>
2.2 再拉一個DropDownList
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
2.3 呼叫webservice的javascript的元件或按鈕
onclick="getList('abc')"
3.建立JavaScript
02 {
03 // 呼叫 Web service 方法。
04 MyServices.LocationService.GetCounty(para);
05 }
06
07 function pageLoad()
08 {
09 // 指定 Web service 方法呼叫完成時的預設 callback。
10 MyServices.LocationService.set_defaultSucceededCallback(methodComplete);
11 }
12
13 function methodComplete(results, context, methodName)
14 {
15 var json = "json="+results;
16 json = eval(json);
17 var obj = document.getElementById('ctl00_ContentPlaceHolder1_DropDownList1');
18 for (i = 0; i < json.length; i++) {
19 obj.options[i] = new Option(json[i].text, json[i].value);
20 }
21 }
1.http://dev.yesky.com/0/3462500.shtml
2.http://huanlin.dyndns.org/cs/blogs/huan-lins_blog/rss.aspx?Tags=AJAX&AndTags=1
3.http://tw.myblog.yahoo.com/class2u-com/article?mid=2&sc=1