[C#][ASP.NET]如何使用Client Script呼叫Server Function

  • 15903
  • 0
  • C#
  • 2010-11-17

[C#][ASP.NET]如何使用Client Script呼叫Server Function

前幾天剛好有相關需求,自己打算使用ajax PageMethods來實現,這裡記錄備忘一下。

.aspx

image

TextBox:輸入使用者名稱

Label:顯示歡迎訊息

ScriptManager請設定EnablePageMethods="true"(asp.net ajax和ScriptManager是很親密的..XD)
 
Client Script(使用PageMethods呼叫Server Function時都要指定接收結果的JavaScript function)
		<script type="text/javascript">
		 
		function CallServer(srcid,destid) {
		//取得來源控制項 Value
		var value = $("#" + srcid).val(); 
		//呼叫Server Function   
		PageMethods.Wellcome(value, OnSuccess, OnFailure, destid);
		}
		 
		function OnSuccess(result, destid) {
		//成功時,目地控制項顯示所接收結果
		$("#" + destid).text(result);
		}
		 
		function OnFailure(error, destid) {
		if (error != null) {
		alert(error.get_message()); 
		}    
		} 
		</script>

 

 

image

.aspx.cs
		[WebMethod]
		public static string Wellcome(string name)
		{
		if( string.IsNullOrEmpty( name ) )
		return string.Empty;
		else
		return "歡迎 " + name +" 參觀";
		}        

 

 

 記得要宣告成public static並加上[WebMethod]修飾詞。

 

		protected void Page_Load( object sender, EventArgs e )
		{
		if( !IsPostBack )
		{
		//當textbpx失去焦點時執行client script(callserver function)
		TextBox1.Attributes.Add( "onblur", "CallServer('" + TextBox1.ClientID + "','" + Label1.ClientID + "')" );            
		}
		}   

 

 

註冊client function到TextBox1的onblur事件上。

 

結果:

image

輸入姓名。

 

image

textbox失去焦點時,顯示歡迎訊息。