ASP.NET 用ICallbackEventHandler實現無重新整理驗證

來源:互聯網
上載者:User

 

C#代碼

public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
...{
    private string result;
    
    protected void Page_Load(object sender, EventArgs e)
    ...{
        
        
        if (!Page.IsPostBack)
        ...{
            string cbReference = Page.ClientScript.GetCallbackEventReference(this, "text", "ReceiveServerData", "");   //擷取一個對用戶端函數的引用;調用該函數時,將啟動一個對伺服器端事件的用戶端回調。
            string callbackScript = "function dos(text){" + cbReference + ";}";                                        //註冊用戶端方法
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dos", callbackScript, true);








        }

      
    }
    public void RaiseCallbackEvent(string text)
    ...{
        
       
        if (text[0] == 'c')
        ...{
            string checkcode = (string)Session["validateCode"];
            string j = text.Substring(1);
            checkcode = checkcode.ToLower();
            j = j.ToLower();
            if (j == checkcode)
                result = "ctrue";
            else
                result = "cfalse";

        }
        else if (text[0] == 'e')
        ...{
            string j = text.Substring(1);
            LinkDataBase myLink = new LinkDataBase();
            if (myLink.CheckEmail(j) == 1)
                result = "efalse";
            else
                result = "etrue";

        }
        else if (text[0] == 'u')
        ...{
            string j = text.Substring(1);
            LinkDataBase myLink = new LinkDataBase();
            if (myLink.CheckUser(j) == 1)
                result = "ufalse";
            else
                result = "utrue";
        }
    }
    public string GetCallbackResult()
    ...{
        
        return result;
    }

  
  
}

 

Javascript 加上下面的函數

function ReceiveServerData(text)
...{    
   
    if(text=="cfalse")       
    ...{ 
        checkValidateCode="false2";
        SetCheckValidateCode(checkValidateCode);
        
     }
     else if(text=="ctrue")
     ...{

        checkValidateCode="true";
        SetCheckValidateCode(checkValidateCode);
      }
      else if(text=="etrue")
      ...{
        checkEmail="true";
        SetCheckEmail(checkEmail);
      }
      else if(text=="efalse")
      ...{ 
        checkEmail="false3";
        SetCheckEmail(checkEmail);
      }
      else if(text=="ufalse")
      ...{
        checkUser="false4";
        SetCheckUser(checkUser);
      }
      else if(text=="utrue")
      ...{
         checkUser="true";
         SetCheckUser(checkUser);
      }
      checking=false;
   
}

 

 

最後在Javascript 中用dos(str)調用 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.