您現在的位置是:電腦技術吧?>? 基礎知識 ??>??框架控件,框架控件是一個什么控件??>??正文詳情

框架控件,框架控件是一個什么控件

不飛煙2019-11-13 13:41:15 人圍觀
簡介vb框架控件是哪個首先,我們注意到服務器控件imagemap也在asp.net 2.0中提供。此控件是一個服務器控件,允許您定義圖片上的熱點區域。用戶可以單擊這些熱點區域來回傳或vb框架控件在哪

一、 簡介  首先,我們注意到,ASP.NET 2.0中也提供了一個服務器控件ImageMap。

此控件是一個讓你可以在圖片上定義熱點(HotSpot)區域的服務器控件。

用戶可以通過點擊這些熱點區域進行回發(PostBack)操作或者轉發到某個URL地址。

典型情況下,該控件用于需要對某張圖片的局部范圍進行互動操作。

然而,這個控件的不足之處在于,在點擊這些熱點區域進行回發時將導致整個Web頁面的刷新。

  在本文中,我們將基于ASP.NET AJAX技術對普通的HTML Map控件加以擴展,以達到在點擊其上的熱點區域時,在顯示有關詳細信息時僅僅導致局部的頁面更新,從而使之適應Web 2.0應用程序開發潮流。

  下面圖1展示了本文示例程序運行時的一個快照。

  圖1.使用AJAX技術擴展后的Map控件熱點點擊僅引發局部更新。

  從上圖中看到,當鼠標懸浮于上圖太陽系中的木星(木星)上時,有關該星球的細節信息將以一個彈出窗口形式友好地展示出來(注:此圖取自MSDN,這里沒有翻譯相應單詞)。

  二、 創建一個AJAX示例網站  啟動Visual Studio 2005,選擇文件新建網站,然后選擇ASP.NET AJAX-Enabled Web Site模板,命名工程為Ajax_ImageMap,并選擇C#作為內置支持語言,最后點擊OK。

  然后,添加一個新的ASPX頁面ImageMap.aspx,并且按如下所示修改其中的HTML代碼部分:以下是引用片段:IMG SRC=imagessolarsys.gif WIDTH=504 HEIGHT=126 BORDER=0ALT=Solar System USEMAP=#SystemMapMAP NAME=SystemMapAREA SHAPE=rect COORDS=0,0,82,126onmouseover=javascript:GetAreaInfo(event, 'sun'); onmouseout=javascript:HidePopup();AREA SHAPE=circle COORDS=90,58,3onmouseover=javascript:GetAreaInfo(event, 'merglobe'); onmouseout=javascript:HidePopup();AREA SHAPE(省略)/MAP在上面代碼中,我們添加了一個HTML 元素和一個HTML 元素(注:VS2005工具欄中沒有提供現成的控件,只能手工添加)。

其中定義了各個星球相應的熱點形狀及坐標信息。

而且,每一個熱點都有一個相應的onmouseover和onmouseout JavaScript函數與之相關聯。

當鼠標在這些熱點上移動時,這兩個函數將被激活,相應信息被顯示出來。

有關這兩個函數,我們將在后面詳細討論。

  三、 創建一個AJAX服務現在,我們需要創建一個新的Web服務,由它負責與熱點點擊相關的數據檢索任務。

其實,這里所謂的AJAX服務,其功能與通常的Web服務是一致的。

有關它們之間的細節區別在此不再贅述。

現在,你可以右擊工程,然后添加一個命名為LocationService.asmx的Web服務。

  注意,在本例中我們僅想通過這個Web服務來模擬實戰環境中的一種簡單邏輯。

因此,它僅包含一個Web方法;此方法負責模擬從服務器數據庫中取得客戶端需要的信息。

  在此,為了使這個ASP.NET Web服務能夠被從客戶端以AJAX方式加以調用,必須把ScriptService屬性添加到類聲明的前面,如下所示:以下是引用片段:[ScriptService()]publicclassLocationService:System.Web.Services.WebService{  現在,編寫我們的Web方法:以下是引用片段:[WebMethod][ScriptMethod(UseHttpGet=false,ResponseFormat=ResponseFormat.Json)]publicstringGetAreaInfo(stringarea){returnarea;}  根據權威人士建議,為了安全起見,我們一般要使用HttpPost(或者HttpGet= false)方式訪問Web方法。

然后,我們把返回的數據格式配置為JSON格式(默認方式即為JSON方式)。

  為了簡化起見,這里的GetAreaInfo方法僅僅返回輸入參數的相同值;但在實際開發中,我們應該在此替換以從數據庫中檢索數據。

  到目前為止,我們已經成功創建從客戶端以AJAX方式加以調用的Web服務。

  但是,我們還要對頁面中的服務器控件ScriptManager進行一些適當的配置,如下所示:  以下是引用片段:asp:ScriptManager ID=ScriptManager1 runat=serverservicesasp:servicereference path=~/LocationService.asmx //services/asp:ScriptManager在此,我們僅在節點下加入了一個服務參考,但其作用如何呢?從生成的HTML源碼分析,上面的配置將生成如下所示內容:  以下是引用片段:script src=LocationService.asmx/jsdebug type=text/javascript/script這里的腳本標簽引用了一個JavaScript文件LocationService.asmx/jsdebug。

其實這是一個Web服務代理類。

正是通過此代理類,我們才得以從客戶端以異步方式調用服務器端的Web服務。

  更有意思的是,如果你簡單地復制顯示在上面的路徑到瀏覽器中,你將看到一個在運行時刻由AJAX環境生成的JavaScript文件此文件使腳本服務調用可用。

有關代理類,我們不再深入討論。

  下面,我們來看如何創建一個定制的客戶端類。

  四、 創建客戶端定制類  我們知道ASP.NET AJAX框架的重大發明之一就是,它引入了面向對象的JavaScript編程模型。

現在,借助于JavaScript設計模式,我們可以輕松地創建自己的模板或類,加入繼承概念,創建接口與枚舉等。

  在本文中,我們將開發一個封裝所有本示例中要求功能的客戶端類。

  現在,右擊工程,并新添加一個名為ImageMap的JavaScript文件。

在此文件中,我們將定義一個新的命名空間MyServices;這個命名空間將包含我們要開發的客戶端類。

如下所示:  以下是引用片段:  Type.registerNamespace(MyServices);  接下來,我們定義要創建的客戶端類的構造函數:  以下是引用片段:  MyServices.Location = function (uiElement, uiBody) {  MyServices.Location.initializeBase(this);  this._uiElement = uiElement;  this._uiBody = uiBody;  this._xAxis = 0;  this._yAxis = 0;  }  一個模板或類的構造函數也只不過是一個普通的JavaScript函數。

該構造器共有兩個參數:uiElement和uiBody。

  這兩個參數都將用于描述在頁面顯示的彈出窗口。

另外兩個私有變量_xAxis和_yAxis用于描述彈出窗口的顯示位置。

典型情況下,我們最好在構造器中聲明所有的私有成員。

  接下來,我們將使用原型設計模式編寫該類中的成員函數和屬性:  以下是引用片段:  MyServices.Location.prototype =  {  get_uiElement: function()  {  return this._uiElement;  },  set_uiElement: function(value)  {  this._uiElement = value;  },  get_uiBody: function()  {  return this._uiBody;  },  set_uiBody: function(value)  {  this._uiBody = value;  },  注意,這里的UI元素屬性方法的定義方式非常類似于.NET中各種語言中的定義形式。

  下面的成員函數是我們的重點,它負責調用遠程的Web服務:  以下是引用片段:  ShowPopupinfo: function(event, areaName)  {  MyServices.LocationService.GetAreaInfo(areaName,  Function.createDelegate(this, this.OnCompleted),  this.OnError, //負責進行錯誤處理的回叫函數  this.OnTimeOut); //負責進行超時處理的回叫函數  this._xAxis = event.clientX;  this._yAxis = event.clientY;  }  上面的代碼展示的是非常典型的從客戶端調用Web服務的方法:  1)形式與調用一個普通的本地方法幾乎一樣方便;  2)Function.createDelegate函數是ASP.NET AJAX客戶端開發中的極為重要的全局函數。

創建此函數的原始目的之一是解決this關鍵字的問題。

在一個由一個DOM元素引發的事件處理器中,this關鍵字總是引用此DOM元素而不是類本身。

但在此,我們使用這個函數的理由是,使得AJAX環境在與激發Web服務的相同的類實例中調用成功時的回叫函數。

當你需要引用客戶端類的屬性和方法時,這是相當重要的。

簡言之,使用此函數將使得訪問調用Web服務的客戶端類的屬性和方法安全而準確。

否則,進行異步調用的客戶端類實例將為null,因為Web服務的響應是在另一個不同的上下文中執行的這個上下文不再等同于發出異步Web調用請求的那個上下文。

  3)有意思的是,這里的GetAreaInfo方法并不是我們在前面創建的Web服務中的那個,而是屬于在運行時刻創建的Web服務代理類此代理類作為一個客戶端代理訪問服務器端的ASMX Web服務。

  上面ShowPopupInfo函數中的最后兩行代碼中,使用事件的輸入參數設置兩個私有變量xAxis和yAxis的值。

我們在此的目的是,在與用戶點擊位置盡可能近的地方顯示彈出窗口。

  下面是調用成功時對應的回叫函數的實現代碼:  以下是引用片段:  OnCompleted: function(result, userContext, methodName)  {  var uiElement = $get(this.get_uiElement());  var uiBody = $get(this.get_uiBody());  if (uiBody != null)  {  var textNode = uiBody.firstChild;  if (!textNode)  {  textNode = document.createTextNode(result);  uiBody.appendChild(textNode);  }  else  {  textNode.nodeValue = result;  }  if (uiElement != null)  {  uiElement.style.visibility = visible;  uiElement.style.display = inline;  uiElement.style.left = this._xAxis px;  uiElement.style.top = this._yAxis px;  }  }  },  內容相當簡單把從服務器端返回的數據設置為彈出窗口的顯示內容并根據情況確保顯示此窗口。

  在創建客戶端類的最后,我們還必須告訴AJAX框架在客戶端注冊之,以便可以從客戶端訪問它:  以下是引用片段:  MyServices.Location.registerClass(MyServices.Location);  至此,客戶端類MyServices.Location已經成功創建。

那么,如何使用它呢?  首先,我們需要在頁面加載時定義客戶端類的一個新的實例。

為此,我們需要在pageLoad函數中編程:  以下是引用片段:  varlocation=null;  functionpageLoad(sender,args){  location=newMyServices.Location(modal,modalBody);  location.HidePopupInfo();  }  上面的代碼簡單地創建MyServices.Location類的一個新的實例。

然后調用客戶端類的成員函數之一來隱藏頁面中的彈出窗口。

為什么我們在pageLoad函數中創建客戶端類的一個實例呢?原因在于,當AJAX環境控制流程到達pageLoad函數時,所有的AJAX客戶端和用戶定義的JavaScript代碼都已經被成功加載。

因此,這一時刻我們可以安全地訪問任何用戶或系統定義的JavaScript代碼。

  其它幾個工具函數比較簡單,在此不再贅述。

  五、 總結  在本文中,我向你展示了如何通過創建一個AJAX服務和創建自己定制的客戶端類來擴展HTML Map控件。

在擴展后的控件中,當點擊圖像中的某個區域時,我們可以通過新型的AJAX方式來給出相關細節信息,而不必刷新整個Web頁面。

盡管在大部分Web應用中我們較少應用到這種Map控件(也許因此VS2005工具欄中省略之),但如果開發大量圖片、圖像及地圖操作相關的Web應用時,基于本文AJAX改造后的Map控件一定會讓你的Web應用更加絢爛多彩。

版權聲明:本文由 不飛煙 整理編輯。

原標題:框架內的所有控件是隨,框架內所有控件是

轉載注明出處:http://www.dn9ww09s.icu/basics/11841.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 怎么調屏幕亮度,屏幕亮度調節

    怎么調屏幕亮度,屏幕亮度調節 相關圖片w7怎么調節屏幕亮度很多網友認為電腦顯示器的亮度不是太亮就是太暗。他們想調整亮度,但發現他們很久沒有調整亮度了。他們在那里呆了很長時間,或者還沒有發表意見。如何調節電...

  • 轉html,如何將html轉為pdf

    轉html,如何將html轉為pdf 相關圖片htmlWord可以直接保存為HTML,但即使保存為HTML,也會有大量的代碼浪費。在過去,我使用Dreamweaver的清理HTML來處理,首先處理特定于單詞的標記,html格式...

  • 怎么取消自動關機,設置自動關機

    怎么取消自動關機,設置自動關機 相關圖片windows10自動關機在我們的生活中,設置計算機的自動關機是很常見的。使用簡單方便。為了設置計算機的自動關機,今天推薦給您的設置是計算機的自動關機。操作簡單。它適合廣大用...

  • html的meta標簽,html meta標簽有啥用

    html的meta標簽,html meta標簽有啥用 相關圖片meta標簽url屬性一。Meta標記是嵌入在網頁中的特殊HTML標記,它包含有關網頁的一些隱藏信息。肉類標簽的目的是向搜索引擎解釋你的網頁是關于什么信息的。對于高級搜索引擎來說,H...

  • 開機電腦不斷自動重啟,電腦自動重啟進不了系統

    開機電腦不斷自動重啟,電腦自動重啟進不了系統 相關圖片電腦點重啟一直黑屏如果自動重啟,我們該怎么辦?實際上,自動重啟很容易導致這個問題。只要我們做以下步驟,我們就能解決這個問題。如果自動重啟,我們該怎么辦?我相信大多...

  • 怎么安裝tplink無線路由器,安裝tplink路由器

    怎么安裝tplink無線路由器,安裝tplink路由器 相關圖片無線路由器沒有計算機技術,小白可以自己完成安裝。它安全簡單。可以設置無線路由,手機可以免費上網。接下來,讓我們看看如何操作。許多朋友想知道如何設置無線路由。實際上...

  • 分頁效果,顯示分頁效果

    分頁效果,顯示分頁效果 相關圖片普通視圖能看見分頁效果嗎!--StartFragment--style type=text/css.demo a{浮點:左;邊距:5px 1px 01px;寬度:20px;高度:20p如何實現分頁功能...

  • 戴爾筆記本電腦藍屏怎么解決,筆記本藍屏怎么辦

    戴爾筆記本電腦藍屏怎么解決,筆記本藍屏怎么辦 相關圖片筆記本電腦藍屏怎么辦在使用戴爾筆記本電腦的任何時候,都容易因操作不當或維護不當而引發各種問題,而電腦的藍屏就是其中之一。如果有些人在辦公室,但他們不能繼續工作,就...

  • 瀏覽器兼容性,ie瀏覽器網頁版

    瀏覽器兼容性,ie瀏覽器網頁版 相關圖片360瀏覽器兼容模式本文將簡要介紹div CSS與IE6、IE7和IE8的比較,重點介紹IE6、IE7和IE8之間的區別和聯系。我相信這篇文章會給你一些好處,幫助你解決div CSie瀏覽器兼容模式...

  • 小宇宙罵人小工具,宇宙罵人小工具下載

    小宇宙罵人小工具,宇宙罵人小工具下載 相關圖片qq罵人小工具當我們不想談論無腦噴霧器的時候,為什么還要浪費我們的呼吸呢?我們可以用宇宙詛咒工具來對付他們愚蠢的其他人。軟件為你提供了各種詛咒的聲音。據說里面有600條詛...

熱評文章

  • 電腦切換輸入法,電腦如何切換輸入法

    電腦切換輸入法,電腦如何切換輸入法 相關圖片電腦輸入法輸入法是我們操作計算機的必要條件之一。近日,有用戶反映,無論按組合快捷鍵Alt shift還是Ctrl blank space,很多用戶都對這臺電腦的問題感到困電腦鍵盤輸入法怎么切換...

  • 電腦共享打印機怎么設置,如何添加共享打印機到電腦

    電腦共享打印機怎么設置,如何添加共享打印機到電腦 相關圖片打印機共享怎么設置w7在局域網中,任何一臺計算機都可以通過共享打印機來使用同一臺打印機,很多人可以共享一臺打印機,這大大降低了耗材的成本,而且不需要每個人都有一臺打印...

  • 相對定位是相對什么定位,相對定位和絕對定位的特點

    相對定位是相對什么定位,相對定位和絕對定位的特點 相關圖片相對定位和絕對定位的視頻在網頁設計中,我們經常使用position屬性,它有五個值:absolute、fixed、relative、static,繼承我們經常使用的是absolute和h5絕對定位和相對定位...

  • 電腦藍屏修復按哪個鍵,電腦黑屏了怎么才恢復

    電腦藍屏修復按哪個鍵,電腦黑屏了怎么才恢復 相關圖片電腦突然黑屏怎么辦當我們使用計算機時,我們可能會遇到這樣的情況:主機中的硬盤和CPU正在運行,但計算機是用黑屏打開的。什么情況?許多人在遇到這種情況時不知道如何開始。...

  • HTML 表單,HTML5表單

    HTML 表單,HTML5表單 相關圖片html基本表單代碼在ASP中,有兩個非常常見的集合:請求。詢問和請求。形式。這兩個集合可以獲取通過HTML forms Request.QueryString H提交的信息表單html5代碼...

  • 蘋果電腦推薦,蘋果電腦臺式

    蘋果電腦推薦,蘋果電腦臺式 相關圖片蘋果電腦配置無論在生活、娛樂還是工作中,我們都需要用電腦來進行游戲玩家的反思。蘋果的主要商業模式可以做普通程序,但運行一些大型3D游戲有點困難。是真的嗎?如果不是,真...

  • 新車使用需要注意什么,火煘使用注意

    新車使用需要注意什么,火煘使用注意 相關圖片新車需要注意事項始終對屬性使用帶引號的小寫字母:所有元素和屬性名稱都必須使用小寫字母,所有屬性值都必須使用雙引號錯誤:a ref=index。HTML class=intern新車需要注意什么...

  • 電腦麥克風聲音超級小,win10電腦麥克風沒聲音

    電腦麥克風聲音超級小,win10電腦麥克風沒聲音 相關圖片win10無法使用耳麥說話相信很多網友都遇到過電腦麥克風沒有聲音的問題,但這些問題大多是由于設置不當造成的,可以通過簡單的設置來解決。但是還有其他原因,那么我們如何解決電...

  • 聯想筆記本怎么進入安全模式,聯想筆記本進安全模式

    聯想筆記本怎么進入安全模式,聯想筆記本進安全模式 相關圖片聯想win10安全模式安全模式是Windows系統中的一種特定模式。在這種模式下,我們可以修復一些程序錯誤。聯想用戶會問,聯想電腦如何進入安全模式?為了讓那些喜歡學習的用戶了解這...

  • 靈活使用,FUA靈活使用

    靈活使用,FUA靈活使用 相關圖片如何靈活使用教材首先查看預覽界面:讓我們從完成上述第1頁的步驟開始。構建HTML構建HTML是整個過程中最基本的部分。構建html的關鍵原則之一是返回html標記的原始含義。所怎么提高腦...

關注微信

变脸官网查询