麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

使用ICallbackEventHandler接口實現(xiàn)輕量級的Ajax效果

2019-11-17 02:00:20
字體:
供稿:網(wǎng)友

使用ICallbackEventHandler接口實現(xiàn)輕量級的Ajax效果

1,網(wǎng)上關(guān)于ICallbackEventHandler的實現(xiàn)效果比較多,之所以繼續(xù)寫關(guān)于這個接口的使用有幾個原因:(1)時間長了,容易忘記這個接口該怎么使用,肯定又要去搜索。(2)搜索出一堆別人的博客,看著別人寫的不舒坦,不爽,所以自己按自己的想法想怎么寫就怎么寫。(3)看到自己寫的博客,幾乎很容易就立馬想起來當(dāng)時怎么使用的,很快就知道怎么使用了。(4)還有個原因就是,最近項目不緊,也不知道學(xué)點啥,就隨便敲幾行字。

2,ICallbackEventHandler接口彌補(bǔ)了Ajax框架的不足!Ajax框架比較大,會在前臺生成很多的Js代碼。而ICallbackEventHandler接口卻沒有那么麻煩,他的邏輯,也就是前臺控件觸發(fā)(click,doubleclick,mouSEOver,blur,focus),不管哪種觸發(fā)方式,讓他指定執(zhí)行前臺的一個Js方法(該方法是在后臺Page_load使用RegisterClientScriptBlock()方法注冊到前臺)。然后這個Js方法會執(zhí)行后臺的一個方法,后臺根據(jù)參數(shù)經(jīng)過業(yè)務(wù)處理,將處理結(jié)果賦值給一個屬性,然后后臺回調(diào)方法中將這個屬性的值返回,頁面前臺早已注冊好的方法便會根據(jù)這個返回值進(jìn)行相關(guān)處理。

3,根據(jù)這個邏輯,我寫了一個小的Demo,根據(jù)用戶輸入的手機(jī)號,判斷當(dāng)前手機(jī)號是否已經(jīng)注冊。

(1),前臺HTML代碼

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>    <script type="text/Javascript">        function receiveServerDataNew(returnVal) {            $("#warn").html(returnVal);        }        $(function () {            $("input[id*='TB_MobilePhone']").blur(function () {                var mobilePhone = $("input[id*='TB_MobilePhone']").val();                callServerEvent(mobilePhone, "");            });        })    </script></head><body>    <form id="form1" runat="server">    <div>    姓    名:<asp:TextBox ID="TB_UserName" runat="server"></asp:TextBox><br />    密    碼:<asp:TextBox ID="TB_HiddenCode" runat="server"></asp:TextBox><br />    手機(jī)號:<asp:TextBox ID="TB_MobilePhone" runat="server"></asp:TextBox><span id="warn" style=" color:Red";></span>    </div>    </form></body></html>

(2),后臺代碼

public partial class _Default : System.Web.UI.Page,ICallbackEventHandler    {        PRotected void Page_Load(object sender, EventArgs e)        {            //獲取一個對客戶端函數(shù)的引用;調(diào)用該函數(shù)時,將啟動一個對服務(wù)器端事件的客戶端回調(diào)。此重載方法的客戶端函數(shù)包含指定的控件、參數(shù)、客戶端腳本和上下文            String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "receiveServerDataNew", "context");            String callbackScript = "function callServerEvent(arg, context)" + "{ " + cbReference + ";}";            //往前臺注冊腳本            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "callServer", callbackScript, true);        }        private string _CallBackResult = "";         public string GetCallbackResult()        {            return _CallBackResult;        }        public void RaiseCallbackEvent(string eventArgument)        {            if (eventArgument=="")            {                _CallBackResult = "手機(jī)號不能為空";            }            //自己查數(shù)據(jù)庫去吧            if (eventArgument=="18866668888")            {                _CallBackResult = "當(dāng)前手機(jī)號已經(jīng)注冊";            }        }    }

4,頁面一加載,首先執(zhí)行后臺的Page_Load事件,然后callServerEvent這個方法就注冊到前臺了,前臺頁面一生成,便給手機(jī)號那個文本框注冊了,失去焦點事件,失去焦點的事件里面執(zhí)行callServerEvent()方法(傳入倆個參數(shù)),調(diào)用后臺的RaiseCallbackEvent(string eventArgument)方法,該方法經(jīng)過業(yè)務(wù)邏輯處理,賦值給_CallBackResult屬性,GetCallbackResult()方法將處理結(jié)果返回,同時調(diào)用前臺方法receiveServerDataNew(),該方法便根據(jù)后臺的處理結(jié)果,進(jìn)行頁面處理。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人免费视频 | 斗破苍穹在线免费 | 中文字幕在线观看91 | 亚洲精品在线观看网站 | 欧美精品在线免费观看 | 久久成人国产精品入口 | 欧美h版电影在线观看 | 亚洲一级片免费观看 | 欧美性生交大片 | 99精品欧美一区二区 | 国产亚洲精品久久久久久久久久 | 黄色午夜剧场 | 丰满年轻岳中文字幕一区二区 | 免费网址黄 | 黄色视频a级毛片 | 97青青 | 成人午夜免费网站 | 午夜视频国产 | 久啪视频| 日韩字幕在线观看 | 高清国产午夜精品久久久久久 | 久久精品一区二区三区四区五区 | 沉沦的校花奴性郑依婷c到失禁 | 一级毛片手机在线观看 | 日本在线一区二区 | 日韩av有码在线 | 欧美人与zoxxxx另类9 | 欧美成人高清视频 | 国产一区二区三区视频观看 | 日日鲁夜夜视频热线播放 | 99精品国产成人一区二区 | 色欧美视频| 欧美一级做性受免费大片免费 | 免费啪视频在线观看 | free japan xxxxhdsex69 | 在线天堂中文在线资源网 | 亚洲白嫩在线观看 | 鸳鸯谱在线观看高清 | 逼特逼视频在线观看 | 国产欧美精品一区二区三区四区 | 黄色大片在线观看 |