TextBox OnBlur 事件,建立回傳機制

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);
}

以上,自己的筆記,供參考~~!!!