六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

為ASP.NET控件加入快捷菜單

[摘要]ContextMenu Control 快捷菜單控件概述: MSDN Liabrary 中包含了幾個DHTML快捷菜單的示例。分別提供了對這一功能的不能實現方法。一個快捷菜單就是在頁面中任何位置的一組標記代碼。它包括兩部分內容——界面和腳本(當用戶在頁面右擊時關聯UI),UI提...
  1. ContextMenu Control 快捷菜單控件概述:

              MSDN Liabrary 中包含了幾個DHTML快捷菜單的示例。分別提供了對這一功能的不能實現方法。一個快捷菜單就是在頁面中任何位置的一組標記代碼。它包括兩部分內容——界面和腳本(當用戶在頁面右擊時關聯UI),UI提供一個可點擊的元素的列表——菜單項——和各自的內容文本,圖標,命令名(command name),目標url,提示(tooltip),和所有你認為有必要顯示出來的東西。快捷菜單界面是頁面的一部分,并且屬于頁面控件樹中的一員。(太多的快捷菜單將會出現執行的問題:與大多數用戶的常規情況相比,ASP.NET將發送更多的快捷菜單到瀏覽器)當用戶在頁面的一個元素上右擊時,將引發一段JavaScript,這段腳本將快捷菜單移動到右擊的位置顯示。

              快捷菜單將保持隱藏屬性,只有當用戶在頁面的一個綁定個快捷菜單的元素上右擊時,快捷菜單才顯示。頁面元素接收腳本事件并彈出一個快捷菜單作為響應。腳本事件信賴于瀏覽器,在Internet Explorer 5.0和更新版本中是 OnContexMenu事件.在Netscape6.0和更新版本中你要使用 OnMouseUp 事件(在Internet Explorer 5.0+中你也可能使用OnMouseUp事件,但要多寫幾行代碼)在接收事件的腳本中,獲取快捷菜單的UI代碼塊并且將它移動到發生點擊的位置。同時設置彈出的panel的 visibilty屬性。當用戶在菜單項上點擊時,頁面回傳并引發服務器端事件。對于服務器而言,點擊一個菜單項和點擊一具常規的按鈕沒什么區別。

    當用戶戶想取消已經打開的快捷菜單時怎么辦呢?在windows程序中,按下Esc鍵或者在菜單區域外點擊都可以取消已彈出的快捷菜單。所以你必須在Web中實現這一功能。請注意,只有快捷菜單處于活動(顯示出來)時,Esc鍵才有郊。因為Esc還可用于其它元素的其它鍵盤快捷方式。

    我還可以讓菜單在用戶鼠標移開菜單時隱藏。可以通過腳本操作 OnMouseLeave 事件實現。

  2. 使用彈出菜單控件

              假定我們已以設計出了這個彈出菜單(我們一會兒再說如何實現這個快捷菜單控件),那么如何使用它在ASP.NET頁面中添加一個或多個快捷菜單呢?首先,在Visual Studio® .NET的工個欄中拖一個或多個快捷菜單控件到頁面上。然后,為每個菜單添加菜單項,并配置每個菜單項的的工具提示,命令名(command name)和其它所需的內容,例如快捷鍵和幫助主題的鏈接。命令名(command name)用于在響應點擊快捷菜單發生頁面回傳時確定是哪一個菜單項被點擊;對每一個快捷菜單控件實例的菜單項集合它必須是唯一的。

              你必須在HTML標簽的OnContextMenu事件中加入代碼來彈出快捷菜單,代碼必須信賴一系列的參數,象點擊的x,y坐標,點擊的元素,和要使用的快捷菜單的實例等。注意:如果必要你可以使用這種方式完全代替瀏覽器的快捷菜單。綁定到OnContextMenu事件執行的JavaScript代碼是在運行時動態生成的。ContextMenu控件將暴露一個集合屬性來包含分綁定快捷菜單的控件集合,在ContextMenu控件將在運行時給這些要綁定的控件一個 oncontextmenu 屬性。OK!完成!可以測試了。

              讓我們先來想一下ContexMenu控件和頁中任意的顯示快捷菜單的元素的綁定機制,這種機制對設計時的支持怎么樣?理想的情況是:根據基類每一個Web控件直接暴露一個 ContextMenuId屬性。然后在屬性窗口中選擇這個屬性時,將看到在頁面中的ContextMenu控件的列表。當然這些ContextMenu控件我們是已經創建了的;ContextMenuId屬性在ASP.NET 1.x中不支持,在將來的ASP.NET2.0中也不支持。

              在Visual Studio .NET 2003 集成開發環境中,ASP.NET復合控件可以很好的完成這一工作。可以通過使用類撰寫組合現有控件來創作新控件。復合控件可呈現一個重新使用現有控件功能的用戶界面。復合控件可以從子控件的屬性合成屬性并處理由子控件引發的事件。它還可以公開自定義屬性和事件。

              我不選擇使用復合控件有以下幾個原因:一個是Visual Studio .NET 2003對于Web窗體中的控件功能的擴展支持的不好(請參見:Extender provider components in ASP.NET: an IExtenderProvider implementation),第二,在Visual Studio 2005的ASP.NET設計器中不再支持組件托盤區。Web窗體設計器現在僅支持ASP.NET控件而忽略象復合控件這樣的非可視化的組件。Visual Studio 2005將不再信賴InitializeComponent節,并且不再在代碼文件中自動添任何工具生成(tool-generated)的代碼。ASP.NET控件也不設計成具有快捷菜單,所以要綁定快捷菜單只能通過快捷菜單控件自身的執行。這里我使用類似ASP.NET驗證控件和被驗證控件之間關聯的形式。





主站蜘蛛池模板: 日本成人免费观看 | 欧美性理论片在线观看片免费 | 伊人影院在线观看 | 在线久色 | 亚洲第三区 | 日干夜操 | 午夜影院在线播放 | 天天影视色| 涩涩涩在线视频 | 日本大学生免费一级一片 | 五月婷婷深爱 | 色综合成人 | 视频h在线观看 | 色综久久天天综合绕视看 | 亚洲天堂欧美 | 青色影院| 欧美性猛交xxxx乱大交蜜桃 | 亚洲第一视频网站 | 日本一区二区视频在线 | 日韩精品亚洲一级在线观看 | 日韩免费视频观看 | 午夜小视频免费观看 | 日韩a在线| 日韩黄色中文字幕 | 亚州一级毛片 | 在线观看色视频 | 亚洲欧美综合在线观看 | 午夜精品久久久久久久第一页 | 深夜福利亚洲 | 在线看国产人成www免费看下载 | 色夜视频| 手机看片日韩日韩韩 | 全免费a级毛片免费看不卡 全黄一级片 | 青春草视频在线播放 | 日韩黄色精品 | 日本高清免费在线视频 | 亚洲成人免费看 | 特黄特色一级特色大片中文 | 无码精品一区二区三区免费视频 | 青春草国产成人精品久久 | 日韩精品魔镜号系列在线观看 |