首頁 >後端開發 >C#.Net教程 >asp.net非同步觸發用法(AJAX)

asp.net非同步觸發用法(AJAX)

怪我咯
怪我咯原創
2017-03-31 13:20:351760瀏覽

今天做專案中,由於要非同步觸發,就是當文字方塊失去焦點時到資料庫去檢查一次,然後就想起了三種方式。

簡單介紹下它的用法:

一.AjaxPro的使用

1.在專案中加入引用,瀏覽找到AjaxPro.2.dll檔案

2.在Web.config中的system.web裡面寫入以下程式碼


 
       
     




3.在載入事件#中,加入
 AjaxPro.Utility.RegisterTypeForAjax(typeof(類別名稱));

4.寫的方法都要用
[AjaxPro.AjaxMethod]開頭,然後在寫入方法

5.呼叫時必須寫清楚
命名空間名.類別名稱.方法,例:WebUI._Default.getData();

6.呼叫可分兩中方法(同步調用,非同步調用)

//在後台寫的無參考方法
[AjaxPro.AjaxMethod]
public string getStr()
{
       return  "hello my#{
#        return  "hello my#{
#        return  "hello my#{
# friends";
}
//在背景寫的有參考方法
[AjaxPro.AjaxMethod]
public string getString(string str)
{
    return str + "Say: hello my friends";
}a.同步呼叫
(1).拖曳到html
控制項
button
(2).雙擊,自動顯示在. aspx的腳本中
(3).在裡面寫入你要輸入的內容
例:
//------------------同步調用無參-----------
 function Button1_onclick()
 {
        var res=WebUI._Default.getStr();
        alert(res.value);#      alert(res.value);#   #  }

//------------------同步呼叫有參考------------
function Button2_onclick( ) //TextBox1為伺服器控制項
{
   var str=document.getElementById("<%=TextBox1.ClientID%>").value;
   var res=WebUI._Default.getStr(str );
   alert(res.value);
}

#b.非同步呼叫
(1).拖曳到html控制項button
(2).雙擊,自動顯示在.aspx的腳本中
(3).在裡面寫入你要輸入的內容
範例:
//-----------------非同步調用無參-----------------
function Button3_onclick() {
   WebUI._Default.getStr(getStrCallBack);
}
function getStrCallBack(res )
{
   alert(res.value);
}
//-----------------非同步呼叫有參----- ------------
function Button4_onclick() {
   var str=document.getElementById("<%=TextBox1.ClientID %>").value;
   WebUI ._Default.getString(str,getStringCallBack);
}
function getStringCallBack(res)
{
   alert(res.value);
}7.呼叫
物件


//物件
[AjaxPro.AjaxMethod]
public Class getClass()
{
      Class cla = new Class();
      cla .C_Id = 100;
      cla.C_Name = "34班";
      cla.Count = 20;
      return cla;
}
//--------- ---------同步呼叫物件-----------
function Button5_onclick() {
   var res=WebUI._Default.getClass().value;
alert("班級編號:"+res.C_Id+"名稱:"+res.C_Name+"人數:"+res.Count);
}
//------------ ------非同步呼叫物件-----------
function Button6_onclick() {
   WebUI._Default.getClass(getClassCallBack);
}
function getClassCallBack( clas)
{
   var res=clas.value;
   alert("班級編號:"+res.C_Id+"名稱:"+res.C_Name+"人數:"+res.Count);
}8.
資料集
的使用
//方法
       [AjaxPro.AjaxMethod]
       public DataSet getInfo WebUI.GetDataSet.getList();
       }

//--------------------非同步呼叫資料集------ --------
function Button8_onclick() {
   WebUI._Default.getInfo(getDataSetCallBack);
}
function getDataSetCallBack(res)
{
#  # var dataset= res.value;
   var strHtml="";
   strHtml +='

';
   strHtml +='        ';
   strHtml +='           td>名稱';
   strHtml +='            ';
#    strHtml +=' strHt  |雙; =0;i    {
       strHtml +='        ' ##> > Tables [0].Rows[i].stu_id +'';
       strHtml +='            ';##   c    strHtml +='    
年齡
'+ dataset.Tables[0].Rows[i].stu_name +'< ';
       strHtml +='            
'+ dataset.Tables[0].Rows[i].stu_age +'
';
   thedata.innerHTML=strHtml;//資料為一個

資料中##p id="thedata">

資料中
#p}



#112

#11221;


##9.
驗證碼的使用
//------ ------------- ---驗證碼的使用(必須採用同步呼叫)----------------------

//驗證碼的使用
[AjaxPro.AjaxMethod]
public bool ValidCodeData(string code)
{
    return (HttpContext.Current.Session["CheckCode"].ToString( )==code);
#}























































#################> ####function Button9_onclick() {###    var code=document.getElementById("").value;### var bool=WebUI._Default.ValidCodeData(code).valueData(code).value; ###    if(bool==true)###    {###        alert("ok");###    }else###    {### }###AjaxPro.dll檔案網路上很多的,自己下,如果找不到呢,給我發個留言,我發你郵箱##### ######二,直接呼叫:### ##javascript###中:### function said()###    {###        alert(" ");###    }### function del()###    {###        alert("");// DeleteByID(8)後台方法名稱###    }#####1 ######/**//*### * 對ICallbackEventHandler###介面###進行聲明,要在客戶端呼叫服務端程式碼而不回發,必須聲明該介面並且實作它的兩個方法:### * RaiseCallbackEvent( )、GetCallbackResult()### * RaiseCallbackEvent()的參數是從前台傳過來的,根據傳來的參數執行不同的程式碼並將結果用GetCallbackResult()傳回前台###*/######//必須宣告System.Web. UI.ICallbackEventHandler介面###public 分部類別_Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler###{###    //定義一個回呼的回傳值###    private string Result;# ##    //定義兩個###變數###,用於接收頁面傳遞給傳來到運算元###    private string Num1;###    private string Num2;###    protected void Page_Load(object sender, # *//// ###    /// 此方法是回呼執行的方法,參數根據在該方法中處理回呼的內容,該方法沒有傳回值###    /// ## #    /// 此參數是從客戶傳過來的 ###    public void RaiseCallbackEvent(string eventArgument)###    {####//eventArgumeng 為javascript從客戶端傳遞的參數,本例傳過來三個參數用「/」分割將每個參數取出存入陣列
       string[] PagParams = eventArgument.Split( '/');
        Num1 = PagParams[1];
        Num2 = PagParams[2];
       //根據第一個參數(所選取的##11不同的執行函數
       switch (PagParams[0])
       {
           case "0":##                     case "1" :
                Result = sub(); break;
           case "2":
   問題   case "3":
                Result = pision(); break;
        }
    }

#    /**////
   //// 方法為返回回呼的結果給予客戶端
     //// summary>
   ///
   public string GetCallbackResult()
   {
     函數是透過RaiseCallbackEvent方法,呼叫的回呼要執行操作的函數
   private string add()
   {
       double addResult = double.Parse(Num1) + double. addResult.ToString();
    }

   private string sub()
   {
       double addResult = double.Parse(Num1) - double.Parse(Num2);
       return addResult .ToString();
    }
##    private string multi()
   {
       double addResult = double.Parse(Num1) * double. ToString();
    }
##    private string pision()
   {
       double addresult = double.Parse(Num1) / double.se(uble addresult = double.Parse(Num1) / double.se( ();
    }
}




#
-->


#

以上是asp.net非同步觸發用法(AJAX)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn