這部分的範例為參考別的教學網站而來,有些機制真的還蠻麻煩的。
不過我想應該只是現在不熟悉吧!
新增一個 TestJavaScript.js 在根目錄
function CallMe(src,dest) { var ctrl = document.getElementById(src); // call server side method (注意4個參數 1:傳入的參數, 2:正確時呼叫的方法, 3:失敗時呼叫的方法, 4:最後傳回的clientID) PageMethods.GetContactName(ctrl.value,CallSuccess,CallFailed,dest); } // 當程式正確時呼叫的方法 function CallSuccess(res, destCtrl) { alert(res + "," + destCtrl); var dest = document.getElementById(destCtrl); dest.value = res; } // 當程式錯誤時呼叫的方法 function CallFailed(res, destCtrl) { alert(res.get_message()); }
接著客戶端畫面,ScriptManager這個ID的tag很重要,要使用PageMethods方法必須設定該行
C001.aspx
<%@ Page Language="c#" AutoEventWireup="true" CodeFile="C001.aspx.cs" Inherits="C001" %>
接著伺服器後端程式,.ClientID的目的就是 因為有主版頁面的話,Client的ID會不同,所以將Client值傳給Function做處理
C001.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class C001 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { TextBox1.Attributes.Add("onclick", "CallMe('" + TextBox1.ClientID + "', '" + TextBox2.ClientID + "')"); TextBox2.Attributes.Add("onblur", "CallMe('" + TextBox2.ClientID + "', '" + TextBox3.ClientID + "')"); TextBox3.Attributes.Add("onblur", "CallMe('" + TextBox3.ClientID + "', '" + TextBox1.ClientID + "')"); } } [System.Web.Services.WebMethod] public static string GetContactName(string TextBox1text) { return TextBox1text + " 文字串"; } }
範例下載
沒有留言:
張貼留言