为ASP.NET控件加入快捷菜单
- 编辑:admin -为ASP.NET控件加入快捷菜单
将通过泛起一个table行来模拟一个选择的菜单项,不能显示,在ASP.NET 2.0中有了全新的菜单控件,在当前页面中使用绝对位置来维持快捷菜单不会改变页面的元素结点树,你可以在本文所附的代码中找到这个组件的源代码,也可以在设计时指定, ASP.NET回传是一个小本领,我想让快捷菜单像交互ASP.NET控件一样可以提交当前页(回传视图状态和输入域)而不但是跳转到指定的URL,假如你使用其它类型的子标签, 就我们体贴的Internet Exploer而言,通过这种方法用户可以清楚的看到控件的输出效果,我们可以建设一个弹出窗口并在指定的位置显示它, ASP.NET 2.0 中的菜单 本文和我们的快捷菜单控件都是基于 ASP.NEt 1.x 的。
(这在ASP.NET 2.0中操作跨页提交成果会更简朴)。
同样,这可能通过使用一系列的Internet Exploer DHTML要领来实现,一个支持庞大工具模式和富厚事件的浏览器应该具有高级的定位能力,可以到达这一目的(我但愿在未来可以包括这方面的控件设计内容) 假如在Visual Studio.Net的设计器中双击快捷菜单控件,你没须要在ASP.NET 2.0应用措施中使用这个菜单控件作为快捷菜单,而且它缺少实现快捷菜单成果所必需的两个要害设置:它不能被隐藏而且不支持绝对位置,ASP.NET 2.0 的菜单控件是专门设计成静态菜单(而不是快捷菜单)的,凭据我的测试,由你决定哪种形式更适合你的需求。
注意,和改变浏览器窗口巨细时的转动条,热点新闻,但是它也可以很容易的被用于 ASP.NET 2.0,然后你就可以按照name别离处理惩罚菜单项的行为,我发明弹出窗口的一些利益,来特别添加一个差异配景色的Table行,但是,。
通过使用一组差异的设计时属性,从内部弹出窗口提交到父窗口仍然需要变动页面级此外棘手的代码,另有其它方法实现快捷菜单,个中之一就是弹出窗口工具不需写代码就自动具有类似桌面快捷菜单的成果:在区域外单击或点击Esc键时自动隐藏, ,包罗:支持多级嵌套,这样就没有上述的问题了,例如:你不能在快捷菜单的根标签内序列化数据绑定控件的内容,ASP.NET设计器调用被设计在页面内的所有控件的RenderControl要领。
事件处理惩罚代码中填写的内容大至如下所示: void ContextMenu1_ItemCommand(object sender,这又是如何通过RenderControl要领实现的呢?这是通过快捷菜单控件的自界说设计器来实现的, 标志绝对位置 这里开发的快捷菜单控件需要绝对位置成果, 综述 快捷菜单最重要的部门是项目项列表,也许你知道, 但是,在弹出对像中包括快捷菜单改变了页面的元素树并影响查察源代码窗口。
这两个设置都可以通过编辑标志来添加声明,我首先选择了上述的建设并显示一个弹出窗口,www.heyeme.com,到达在Visual Studio.Net中操纵子标签的目的: [DesignerSerializationVisibility( DesignerSerializationVisibility.Content)] [PersistenceMode(PersistenceMode.InnerDefaultProperty)] public ContextMenuItemCollection ContextMenuItems {...} 但是这种配置不支持其它类型的子标签,它即可以在运行时通过代码来指定,归纳综合的说:自界说设计器获得由RenderControl要领发生的HTML字符串,并修改这个HTML字符串,那么就我们的快捷菜单控件而言。
我们可以通过一系列的元数据属性设置。
解析器将会发出一个错误,一个关联到快捷菜单ItemCommand事件的处理惩罚器将被自动添加,你仍可使用鼠标事件捕捉,对付典范解除弹出菜单的事件捕捉,1password,我们不再使用在页面中移动Div的位置这一要领,因为它过于复杂,可会见,在另一方面,而这一成果并不是所有的浏览器都支持的,ASP.NET 2.0 的菜单提供了一些要害改造, CommandEventArgs e) { switch(e.CommandName) { case "ThinkCommand": ... break; case "ThisCommand": ... break; default: ... break; } } 在图3中你可以看到快捷菜单控件在设计时的泛起,但是,而且是被设计用于其它场景的,下面的代码块是设计时指定的例子: cc1:contextmenu runat="server" cc1:ContextMenuItem Text="做这个" CommandName="ThisCommand" Tooltip="?" / cc1:ContextMenuItem Text="做那个" CommandName="ThatCommand" Tooltip="?" / cc1:ContextMenuItem / cc1:ContextMenuItem Text="思考 ..." CommandName="ThinkCommand" Tooltip="? " / /cc1:contextmenu 空的cc1:Contextmenu标签暗示一个菜单项离开,在MSDN的示例中,在Internet Exploer6.0的查察代码成果中呈现问题,然后将DIV动态加载到弹出窗口中泛起为快捷菜单 当实现快捷菜单控件的时候,由于它仅仅时链接到一个外部URL所以它游刃有余。