知识大全 为ASP.NET控件加入快捷菜单
Posted 菜单
篇首语:举世皆浊我独清,众人皆醉我独醒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 为ASP.NET控件加入快捷菜单相关的知识,希望对你有一定的参考价值。
为ASP.NET控件加入快捷菜单 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
虽然快捷菜单在桌面应用程序中已经是非常通用的元素 但是由于在象ASP NET这样的基于服务器的技术没有很好的描绘 所以在Web应用程序中快捷菜单并不是很通用 要想使用快捷菜单 浏览器必须高度支持DHTML和丰富事件模式 例如 Microsoft Internet Explorer 及更高版本 或者Netscape 等 然而 各种浏览器的对象模式虽然功能上大至相同 但是成员各名字却各不相同 这就需要我们自己实现对象和事件的从一种模式到到另一种模式的转换
这里 我们创建一个针到Internet Explorer的对象模式的ASP NET快捷菜单 接着 我将经过修改使其功能支持其它浏览器
ContextMenu Control 快捷菜单控件概述
MSDN Liabrary中包含了几个DHTML快捷菜单的示例 分别提供了对这一功能的不能实现方法 一个快捷菜单就是在页面中任何位置的一组标记代码 它包括两部分内容——界面和脚本(当用户在页面右击时关联UI) UI提供一个可点击的元素的列表——菜单项——和各自的内容文本 图标 命令名(mand name) 目标url 提示(tooltip) 和所有你认为有必要显示出来的东西 快捷菜单界面是页面的一部分 并且属于页面控件树中的一员 (太多的快捷菜单将会出现执行的问题 与大多数用户的常规情况相比 ASP NET将发送更多的快捷菜单到浏览器)当用户在页面的一个元素上右击时 将引发一段JavaScript 这段脚本将快捷菜单移动到右击的位置显示
快捷菜单将保持隐藏属性 只有当用户在页面的一个绑定个快捷菜单的元素上右击时 快捷菜单才显示 页面元素接收脚本事件并弹出一个快捷菜单作为响应 脚本事件信赖于浏览器 在Internet Explorer 和更新版本中是 OnContexMenu事件 在Netscape 和更新版本中你要使用 OnMouseUp 事件(在Internet Explorer +中你也可能使用OnMouseUp事件 但要多写几行代码)在接收事件的脚本中 获取快捷菜单的UI代码块并且将它移动到发生点击的位置 同时设置弹出的panel的 visibilty属性 当用户在菜单项上点击时 页面回传并引发服务器端事件 对于服务器而言 点击一个菜单项和点击一具常规的按钮没什么区别
当用户户想取消已经打开的快捷菜单时怎么办呢?在windows程序中 按下Esc键或者在菜单区域外点击都可以取消已弹出的快捷菜单 所以你必须在Web中实现这一功能 请注意 只有快捷菜单处于活动(显示出来)时 Esc键才有郊 因为Esc还可用于其它元素的其它键盘快捷方式
我还可以让菜单在用户鼠标移开菜单时隐藏 可以通过脚本操作OnMouseLeave 事件实现
使用弹出菜单控件
假定我们已以设计出了这个弹出菜单(我们一会儿再说如何实现这个快捷菜单控件) 那么如何使用它在ASP NET页面中添加一个或多个快捷菜单呢?首先 在Visual Studio? NET的工个栏中拖一个或多个快捷菜单控件到页面上 然后 为每个菜单添加菜单项 并配置每个菜单项的的工具提示 命令名(mand name)和其它所需的内容 例如快捷键和帮助主题的链接 命令名(mand name)用于在响应点击快捷菜单发生页面回传时确定是哪一个菜单项被点击;对每一个快捷菜单控件实例的菜单项集合它必须是唯一的
你必须在HTML标签的OnContextMenu事件中加入代码来弹出快捷菜单 代码必须信赖一系列的参数 象点击的x y坐标 点击的元素 和要使用的快捷菜单的实例等 注意 如果必要你可以使用这种方式完全代替浏览器的快捷菜单 绑定到OnContextMenu事件执行的JavaScript代码是在运行时动态生成的 ContextMenu控件将暴露一个集合属性来包含分绑定快捷菜单的控件集合 在ContextMenu控件将在运行时给这些要绑定的控件一个 oncontextmenu 属性 OK!完成!可以测试了
慢著 让我们先来想一下ContexMenu控件和页中任意的显示快捷菜单的元素的绑定机制 这种机制对设计时的支持怎么样?理想的情况是 根据基类每一个Web控件直接暴露一个 ContextMenuId属性 然后在属性窗口中选择这个属性时 将看到在页面中的ContextMenu控件的列表 当然这些ContextMenu控件我们是已经创建了的;ContextMenuId属性在ASP NET x中不支持 在将来的ASP NET 中也不支持
在Visual Studio NET 集成开发环境中 ASP NET复合控件可以很好的完成这一工作 可以通过使用类撰写组合现有控件来创作新控件 复合控件可呈现一个重新使用现有控件功能的用户界面 复合控件可以从子控件的属性合成属性并处理由子控件引发的事件 它还可以公开自定义属性和事件
cha138/Article/program/net/201311/15260相关参考
为ASP.NET控件添加设计时支持 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Microsoft
Asp.net控件开发----控件开发基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 服务器
Asp.net2.0为用户控件添加event 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用us
知识大全 ASP.NET 2.0高级控件之FileUpload控件
ASP.NET2.0高级控件之FileUpload控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
ASP.NET2.0写无限级下拉菜单 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET
ASP.NET中不定级动态菜单的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!我们平时IEWe
ASP.NET控件开发基础之复合控件事件处理浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
分析ASP.NET服务器控件开发-控件生命周期 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
ASP.NET开发宝典:ASP.NET服务器控件语法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ASP.NET入门教程 7.2 ASP.NET 2.0的数据控件
ASP.NET入门教程7.2ASP.NET2.0的数据控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一