MenuPilot - 非常棒的开源任务菜单组件 For ASP.Net 2.0

http://www.cnblogs.com/yueue/archive/2007/01/26/631469.html

介绍

Live demo- 在线试用

用例1:GridView action items

这个小组件可以让你简单的将下面这张表

变成下面这样

用例2:Image actions

MenuPilot 可以让图片支持任务菜单,方便的让下面的界面:

变成这样:

如果你有一个页面放满了图片,而没有合适的位置放功能按钮,这将对你非常有用。

MenuPilot 的特性

支持自定义提示图标 支持自定义颜色 支持数据绑定 支持菜单分隔(separators) 全面支持Visual Studio .NET 2005设计时任务 支持ASP.NET 2.0 可与3种ASP.NET 内置组件: HyperLink , Label , Image 进行连接 菜单项支持 titletarget 属性 菜单项可执行 javascript或 转向URL 免疫Internet Explorer z-index bug 免疫Internet Explorer windowed controls z-index bug

它的原理是?

MenuPilot 的原理其实很简单:

每个MenuPilot组件有2个隐藏元素:提示图标(hint icon)和任务菜单(task menu) 当有用户的指针滑过MenuPilot组件,提示图标就会显示(onmouseover 事件) 当提示图标被单击,任务菜单就会显示出来 当用户的指针离开了任务菜单,则提示图标和任务菜单全部消失

当然,这里有一些操作需要完成,以保证MenuPilot可以工作:

注意以下代码仅解释原理,已封装于组件中

1.下面的代码保证当指针停留一定时间后才显示或隐藏提示图标(在onmouseover或onmouseout事件中使用):

 
 

2.下面的代码保证当指针移动到别的MenuPilot组件上后,先前的提示图标和任务菜单可以及时消失:

所有的<span>元素都会在onmouseout事件中调用下面的函数:

 
 

3. 下面的内容保证任务菜单会在<select>元素之上显示(IE Bug)

IE浏览器的BUG:<select>元素会永远在其他元素之上显示
详细见
http://dotnetjunkies.com/WebLog/jking/archive/2003/10/30/2975.aspx

关于组件

组件包含3个部分

MenuPilotHyperLink MenuPilotLabel MenuPilotImage

它们都来自ASP.NET中自带的 HyperLink, Label, Image 组件,所以默认的属性他们都有:

PersistChildren(false)]
[ParseChildren(true, "MenuItems")]
[DefaultProperty(null)]
[Designer(typeof(ControlDesigner))]
[ToolboxBitmap(typeof(HyperLink))]
public class MenuPilotHyperlink : HyperLink
{
//...

当然也少不了一些特有的属性:

参考文献

资源

下载

CodeProject.com 下载

本地下载

Live demo

本文转自:http://www.cnblogs.com/yueue/archive/2007/01/26/631469.html