<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ★33°空間‰


                           ----★七彩服飾  【最潮拜☆日單精品】【Esprit】【Hotwind】滿150包郵-女裝-流行女裝    www.7color.hb.cn

                           ----智力比知識重要,素質比智力重要,覺悟比素質更重要
    posts - 110,comments - 35,trackbacks - 0

    AJAX在去年已經接觸過,但都是使用手動的方法編寫客戶端代碼,再加上被請求的頁面,感覺非常累,雖然早聽說過AJAX.NET和其他一些第3方開發的框架,卻一直沒有時間來體驗。今天干完手上的活,下了個最新版本的AJAX.NET體驗了下

    我使用的還是VS2003,下載了個最新版本的AJAX.NET 6.4.5.1,下載地址:www.schwarz-interactive.de 下面說說使用方法:

    1、準備工作
    新建項目,使用.NET1.1就引用下載下來的AJAX.NET的類庫AjaxPro.dll,如果是使用.NET2.0 就引用AjaxPro2.dll
    首先修改WEB.CONFIG文件
    ?在<system.web> 節點內增加

    <
    httpHandlers>
    ???? <addverb="*"path="*.ashx"type="AjaxPro.AjaxHandlerFactory,AjaxPro"/>
    </httpHandlers>


    2、然后在Page_Load事件中注冊頁面類
    如我將使用AJAX的頁面類名為‘AjaxControls’,注冊語句就這樣寫:
    ?????
    AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxControls));

    紅字的地方是我的頁面的類名
    這句的作用實際上是在頁面被請求的時候生成幾句調用JS的SCRIPT代碼

    3、編寫服務器端處理函數
    ????????如:
    ???????? [AjaxPro.AjaxMethod]
    ???????? publicstring Fun(string str)
    ???????? {
    ????????????? return str;
    ???????? }

    ‘[AjaxPro.AjaxMethod]’這句是關鍵,函數或方法寫法沒什么特別的地方,只是要使用這句聲明這個函數是由AJAX.NET在頁面異步請求的,總之記住要通過AJAX獲得數據的后臺函數就使用[AjaxPro.AjaxMethod]來聲明一下。
    另外,在AJAX.NET中如果處理函數需要對SESSION進行操作,‘[AjaxPro.AjaxMethod]’需要改成‘[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]’在 [AjaxPro.AjaxMethod(AjaxPro.……)]? 的‘……?’部分ajax.net還提供了其他很多方法,可以處理一些特殊的請求。
    還有一點注意,如果使用Application,直接讀取或寫入Application也是不行的,需要使用HttpContext.Current.Application,同樣對 Request的訪問也需要使用HttpContext.Current.Request。原因是直接使用的Application 或Request等 都是由Page類繼承下來的,而用Ajax.net對后臺方法訪問的時候,這些方法并不屬于Page類。但是Session比較特殊,使用 HttpContext.Current.Session仍然不能訪問,必須使用上面一段所用的方法并且直接就用Session就行。

    4、客戶端代碼
    在我的這個示例中,使用‘Ajax.AjaxControls.Fun("測試用的傳遞的字符串參數");’請求后臺的函數,然后返回一個OBJECT對象,這個OBJECT的VALUE屬性就可以得到后臺函數的返回值
    如:
    function doTest()
    {
    var?getobject = Ajax.AjaxControls.Fun("測試用的傳遞的字符串參數");
    alert(getobject.value);
    }
    Ajax 是我這個項目的命名空間
    AjaxControls 是我這個頁面的的類名
    Fun 很明顯就是聲明了的那個AJAX可調用的方法名
    ()中的參數也就是我的Fun函數所需要的參數
    doTest() 只是一個客戶段的函數,可以綁到控件的事件中,也可以已不用事件,隨便怎么處理
    客戶端異步請求這個函數所得到的和平時我們用函數返回的稍微不同的就是,平時直接得到函數類型的返回值,而使用AJAX.NET客戶端異步請求后臺函數得到的是個OBJECT,要通過這個OBJECT的VALUE屬性才能得到函數返回的值。
    通常這里的客戶段腳本還可以這樣寫:
    ?
    function doTest()
    {
    Ajax.AjaxControls.Fun("測試用的傳遞的字符串參數",getdata);
    }
    function getdata(rv)
    {
    ????alert(rv.value);
    }

    Ajax.AjaxControls.Fun 中的參數除了對應后臺函數的參數外,最后可以使用一個表達式參數,這個參數是某個客戶段函數名,設置后,Ajax.AjaxControls.Fun請求后所獲得OBJECT對象將被做為 表達式參數函數的一個參數傳遞到該函數中,然后通過這個OBJECT參數的VALUE就可以獲得 AJAX請求后臺函數所返回的值了
    通過這幾個步驟 就可以做出一個簡單的使用Ajax.net結合.NET的示例頁面了。

    下面說說用后的感受:
    總體感覺上使用起來很方便,很簡單,但是功能不夠強大,也許是我初次涉及的緣故,還沒摸索出更高級的使用方法,但是在對服務器控件的控制上基本不能實現,需要使用其他方法如獲得控件輸出樣式,然后通過客戶端方法加載,還有除了能異步的獲得后臺請求的函數或方法的返回值之外,其他更具體復雜的操作都需要手動的寫代碼解決,不過確實是不錯的東西,可以很快速的完成某些AJAX的效果。也許還有很多更強大的功能我還沒摸索到,希望大家指教
    posted on 2007-03-23 10:32 圣域飛俠 閱讀(213) 評論(0)  編輯  收藏 所屬分類: 轉載
    主站蜘蛛池模板: 亚洲午夜福利在线观看| 四虎免费久久影院| 久久精品国产亚洲av麻豆色欲| 中文字幕不卡免费高清视频| 亚洲美女高清一区二区三区 | 国产精品亚洲精品青青青| 亚洲视频免费在线看| 亚洲国产福利精品一区二区| 四虎在线免费视频| 亚洲人成人网毛片在线播放| 性一交一乱一视频免费看| 亚洲成AV人影片在线观看| 四虎1515hm免费国产| 污视频网站免费在线观看| jlzzjlzz亚洲乱熟在线播放| 91成人免费观看在线观看| 亚洲AV无码不卡无码| 日韩免费一区二区三区在线 | 亚洲毛片αv无线播放一区| 免费国产99久久久香蕉| 亚洲成aⅴ人片在线观| 妞干网在线免费观看| 日本永久免费a∨在线视频| 亚洲女初尝黑人巨高清| 皇色在线视频免费网站| 美女被免费网站在线视频免费| 中文字幕亚洲日韩无线码| 最近免费字幕中文大全视频| 亚洲日韩久久综合中文字幕| 亚洲国产天堂久久综合| 99久久99久久精品免费观看| 亚洲AV无码资源在线观看| 亚洲熟女少妇一区二区| 噼里啪啦电影在线观看免费高清| 黄页网址在线免费观看| 亚洲小视频在线观看| 国产精品免费看久久久无码| 久久美女网站免费| 亚洲av成人片在线观看| 亚洲人成无码网站| 午夜a级成人免费毛片|