回調

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        //客戶端執行的方法 
        //下面的方法是接收並處理服務器方法執行的返回結果 
        function Success(args, context) {
            message.innerText = args;
        }
        //下面的方式是當接收服務器方法處理的結果發生異常時調用的方法 
        function Error(args, context) {
            message.innerText = "發生了異常";
        } 
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <table border="1" cellpadding="0" cellspacing="0" width="400px">
        <tr>
            <td width="100px">
                用戶名
            </td>
            <td>
                <input type="text" size="10" maxlength="20" id="txtUserName" onblur="CallServerMethod(txtUserName.value,null)" /><span
                    id="message"></span>
            </td>
        </tr>
        <tr>
            <td>
                密碼
            </td>
            <td>
                <input type="password" size="10" maxlength="20" id="txtPwd" />
            </td>
        </tr>
    </table>
    </form>
</body>
</html>


後臺:

  public partial class _Default : System.Web.UI.Page, ICallbackEventHandler 
    {
        string result = "";
        // 定義在服務器端運行的回調方法. 
        public void RaiseCallbackEvent(String eventArgument)
        {
            if (eventArgument.ToLower().IndexOf("admin") != -1)
            {
                result = eventArgument + "不能作爲用戶名註冊。";
            }
            else
            {
                result = eventArgument + "可以註冊。";
            }
           // throw new Exception(); 
        }
        //定義返回回調方法執行結果的方法 
        public string GetCallbackResult()
        {
            return result;
        }
        //服務器上執行的方法 
        public void Page_Load(Object sender, EventArgs e)
        {
            // 獲取當前頁的ClientScriptManager的引用 
            ClientScriptManager csm = Page.ClientScript;
            // 獲取回調引用。會在客戶端生成WebForm_DoCallback方法,調用它來達到異步調用。這個方式是微軟寫的方法,會被髮送到客戶端 
            //注意這裏的"Success"和"Error"兩個字符串分別客戶端代碼中定義的兩個javascript函數 
            //下面的方法最後一個參數的意義:true表示執行異步回調,false表示執行同步回調 
            String reference = csm.GetCallbackEventReference(this, "args", "Success", "", "Error", false);
            String callbackScript = "function CallServerMethod(args, context) {" +
             reference + " }";
            // 向當前頁面註冊javascript腳本代碼 
            csm.RegisterClientScriptBlock(this.GetType(), "CallServerMethod",
             callbackScript, true);
        } 

    }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章