推薦:ASP.NET2.0中控件的簡單異步回調
雖然已經有了ASP.NET AJAX了,最近學習ASP.NET控件的時候,逐步理解了原始的控件異步回調(代碼取自《ASP.NET 2.0 高級編程》): 首先,在Render事件中添加好一個事件
以下為引用的內容: RequestHelper.js //功能 : 在javascript中提供QueryString/Cookie/Anchor的訪問. /*使用 : var Request = new RequestHelper(); var s = Request.QueryString["id"]; //取得url中的id參數. var c = Request.Cookies["name"]; //取得id為name的cookie值. var a = Request.Anchor; //取得url中定位的錨點名稱. */ //更新 : 2008-05-31 RequestHelper.prototype.GetParams = function() { var result = {}; var loc = document.location.toString(); if(loc.indexOf("?") > -1) { var l = loc.lastIndexOf("#") > -1 ? loc.lastIndexOf("#") : loc.length; var param_str = loc.substring(loc.indexOf("?") 1, l); var params = param_str.split("&"); for(var x = 0; x < params.length; x ) { params[x] = params[x].split("="); result[params[x][0]] = params[x][1]; } } return result; } RequestHelper.prototype.GetCookies = function() { var result = {}; var cookie = document.cookie; if(cookie.length > 0) { var reg = /(^[a-zA-z0-9] ?|; [a-zA-z0-9] ?)=/g; var c = cookie.match(reg); if(c) { var n = 0; for(var x = 0; x < c.length; x ) { n = (x < c.length - 1) ? cookie.indexOf(c[x 1].toString()) : cookie.length; var s = cookie.substring(cookie.indexOf(c[x].toString()),n); s = s.split("="); s[0] = s[0].replace(/^; / , ""); result[s[0]] = s[1]; } } } return result; } RequestHelper.prototype.GetAnchor = function() { var Anchor; var loc = document.location.toString() if(loc.lastIndexOf("#") > -1) { Anchor = loc.substring(loc.lastIndexOf("#") 1); } return Anchor; } function RequestHelper() { this.QueryString = this.GetParams(); this.Cookies = this.GetCookies(); this.Anchor = this.GetAnchor(); } |
分享:asp.net客戶端回調功能的實現機制
實現的過程基本上就是:讓要實現客戶端回調功能的頁面或者空間實現System.Web.UI.ICallbackEventHandler的接口,即2個方法:void RaiseCallbackEvent(string eventArgument),這個是當客戶端觸
新聞熱點
疑難解答