[問題] PageMethod 用javascript呼叫method

作者: because25 (口苗)   2016-05-20 16:05:30
最近自學ASP.NET 的AJAX 寫法範例,有不懂的地方想請教大家
觀念上或是該去哪裡查詢文件也請指教
網路上學習的範例:點選並傳出TextBox1呼叫AJAX 再用TextBox2代出結果
操作上可以執行,但有細節不懂~~~
1.想請問PageMethods.GetContactName為什麼可以代入4個引數?
在.cs時GetContactName只有設定1個參數而已呀
2.CallSuccess CallFailed 我認知是在PageMethods.GetContactName去呼叫的?
是不是有點類似 IIF 的概念?
3.CallSuccess CallFailed 的兩個引數又是如何知道要抓哪裡?
aspx
<asp:TextBox ID="TextBox1" runat="server" />
<asp:TextBox ID="TextBox2" runat="server" />
<script type="text/javascript" language="javascript">
function CallMe(src, dest) {
var ctrl = document.getElementById(src);
PageMethods.GetContactName(ctrl.value, CallSuccess, CallFailed,dest);
}
function CallSuccess(res, destCtrl) {
var dest = document.getElementById(destCtrl);
dest.value = res;
}
function CallFailed(res, destCtrl) {
alert(res.get_message());
}
aspx.cs
[System.Web.Services.WebMethod]
public static string GetContactName(string TextBox1text)
{
return TextBox1text + System.DateTime.Now.ToString();
}
Page_Load加入
TextBox1.Attributes.Add("onblur", "CallMe('" + TextBox1.ClientID + "', '" +
TextBox2.ClientID + "')");
作者: Ammenze (藍天白雲)   2016-05-23 09:32:00
http://goo.gl/oJIWuo 第一張圖有答案
作者: because25 (口苗)   2016-05-23 10:45:00
謝謝Ammenze 此網頁我也有找到和實作但有類似的範例卻只有代3個參數,導致我有點搞混了參數dest讓我有點疑惑,怎麼會放在Success Failed的後方,想說是不是PageMethods有一定的規則?CallMe代入兩個參數src,dest接著呼叫PageMethods.GetContactName時卻ctrl.value,dest放前後,是因為dest要給CallSuccess CallFailed用的關係嗎?
作者: Ammenze (藍天白雲)   2016-05-24 11:12:00
是,只代3個參數的話,那下方的callSucess就只會有1個參數表示callsuccess跟callfailed不會對任何控制項做任何事

Links booklink

Contact Us: admin [ a t ] ucptt.com