Asp.net 中TextBox 並不包含一些前端頁面所需要處理的事件,得必須自行一一加入 所以我們在HTML前端部分
將TEXTBOX物件的屬性設定為
ClientIDMode="Static"
onblur="__doPostBack('temptextbox','OnBlur');"
並且在該物件的 OnInit 事件新增程式段落
在OnInit 事件 程式中鍵入
var onBlurScript = Page.ClientScript.GetPostBackEventReference(物件名稱, "OnBlur");
temptextbox.Attributes.Add("onblur", onBlurScript);
另外在 Page_Load 事件中增加一判斷
if (IsPostBack)
{
var ctrlName = Request.Params[Page.postEventSourceID];
var args = Request.Params[Page.postEventArgumentID];
if (string.IsNullOrEmpty(ctrlName.ToString()) != true && string.IsNullOrWhiteSpace(ctrlName.ToString()) != true)
{
HandleCustomPostbackEvent(ctrlName, args);
}
}
在Page_Load 中有一自訂副程式,該副程式如下:
private void HandleCustomPostbackEvent(string ctrlName, string args)
{
if (ctrlName == temptextbox.UniqueID && args == "OnBlur") //判斷物件名稱及是否為ONBLUR事件
{
//要執行的程式片段
}
}
另外建置一JS檔案,讓前端控制去呼叫
function CallMe(src, dest) {
var ctrl = document.getElementById(src);
// call server side method
PageMethods.GetContactName(ctrl, CallSuccess, CallFailed, dest);
}
// set the destination textbox value with the ContactName
function CallSuccess(res, destCtrl) {
var dest = document.getEl.gementById(destCtrl);
dest.value = res;
}
// alert message on some failure
function CallFailed(res, destCtrl) {
alert(res.get_message());
}
function CallMethod(src) {
alert("Javascript");
var ctrl = document.getElementById(src);
PageMethods.SetTextBox(ctrl, CallSuccess, Null);
}
以上,自己的筆記,供參考~~!!!