AJAX俺也不會,是真的,不過,以後就會了

來源:互聯網
上載者:User
AJAX俺也不會,是真的,不過,以後就會了,因為俺要學習了,呵呵,先把下面的文章收藏起來:

Ajax研究小結 ((作者:李天平    轉載請註明))
轉自:http://www.cnblogs.com/ltp/archive/2005/12/03/289725.html

Ajax最近可謂是流行加火熱,為web開發中的重新整理問題帶來了新的生機與希望。雖然這項技術在很久以前就有人在用,無非是XMLHttpRequest JavaScript的幾項技術按一定的方式組合,也算不得什麼新技術,但掛了一個名,做了一個封裝,還是為不少開發人員提供了很多便捷。因此,我也抽出時間來研究了一下,並且應用到當前的項目裡,同時做個小結放在這裡。

 

 

具體使用:

 

 

1. 在項目中添加引用Ajax.dll (我用的版本是5.7.22.2)

 

 

2. 修改web.config,在裡面增加

 

 


<configuration>
  <system.web>
    <httpHandlers>
    <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
    </httpHandlers>  
    
  <system.web>
</configuration>

 

 

 

 

3. 建立一個實現商務邏輯的類,並在裡面增加方法,在方法上面加上[Ajax.AjaxMethod()]。如:

 

 

   /// <summary>

 

 

     /// 商務邏輯的類

 

 

     /// </summary>

 

 

     public class AjaxBLLClass

 

 

     {

 

 

         public AjaxBLLClass()

 

 

         {            

 

 

         }

 

 

         [Ajax.AjaxMethod()]

 

 

         public string GetPlaceList(int ClassID)

 

 

         {

 

 

              Advertisement.BLL.ADManage.AdPlace adplace=new Advertisement.BLL.ADManage.AdPlace();

 

 

              DataSet ds=adplace.GetListByClass(ClassID);

 

 

              string str="";

 

 

              for(int m=0;m<ds.Tables[0].Rows.Count;m++)

 

 

              {

 

 

                   str+=","+ds.Tables[0].Rows[m]["PlaceID"].ToString()+"|"+ds.Tables[0].Rows[m]["PlaceName"].ToString();

 

 

              }

 

 

str=str.Substring(1,str.Length-1);

 

 

return str;

 

 

         }

 

 

        

 

 

4. 在調用頁的.cs的Page_Load事件中增加一行類註冊代碼

 

 

private void Page_Load(object sender, System.EventArgs e)
 {
   //註冊類獲得有效方法
   Ajax.Utility.RegisterTypeForAjax(typeof(AjaxBLLClass));
  }

 

 

注意:typeof(AjaxBLLClass)中,AjaxBLLClass是要包含要調用方法的類,即上面第3步建立的商務邏輯類AjaxBLLClass

 

 

5. 在調用頁分頁檔中或者單獨寫一個js檔案,用Javascript代碼調用商務邏輯的類的方法。如:

 

 

              function classResult()

 

 

         {

 

 

              var classid=document.getElementById("DropClassID");

 

 

              AjaxBLLClass.GetPlaceList(classid.value,get_class_Result_CallBack);//調用商務邏輯類方法

 

 

             

 

 

         }

 

 

 

 

         function get_class_Result_CallBack(response)

 

 

         {

 

 

              if (response.value != null)

 

 

              {                   

 

 

                   document.getElementById("DropPlaceID").length=0;

 

 

               var piArray = response.value.split(",");

 

 

          for(var i=0;i<piArray.length;i++)

 

 

          {

 

 

             var ary1 = piArray[i].toString().split("|");

 

 

             document.getElementById("DropPlaceID").options.add(new Option(ary1[1].toString(),ary1[0].toString()));

 

 

          }                   

 

 

              }               

 

 

              return

 

 

         }

 

 

6. 調用

 

 

<asp:dropdownlist id="DropClassID" runat="server" Width="250px" onchange=” classResult()”></asp:dropdownlist>

 

 

註:如果是低版本的Ajax需修改Global.asax的Application_Start事件,設定Ajax的HandlerPath :

 

 

protected void Application_Start(Object sender, EventArgs e)
  {
     //Ajax.Utility.HandlerPath = "ajax";//老版本的需要
  }

 

 

使用感受:個人認為雖然它從一定程度上解決了頁面的重新整理問題,但卻需要寫大量的指令碼代碼,並且和.net的控制項和類庫結合還不是很好,還不適合在項目裡大量地使用,在一些對重新整理要求不是太高的地方還是用ASP.NET的編碼方式好一些。

 

 

 

 

範例程式碼下載

 

 

 

 

附上一些Ajax資源

 

 

http://ajax.schwarz-interactive.de

http://weblogs.asp.net/mschwarz/

 

 

http://groups.google.com/group/ajaxpro?lnk=li

 

 

MSDN上的Atlas 網站

 

 

ASP.NET "Atlas" 官方網站

 

 

ASP.NET "Atlas" 預覽文檔

 

 

Atlas  快速入門教程

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.