ASP.NET Menu. ExpertMenu - XML and CSS based DHTML Server-Side Menu Control for ASP.NET

Examples Quick Start ExpertMenu Designer Contact Us


ExpertMenu Overview
What is ExpertMenu?
ExpertMenu is an ASP.NET web control for building hierarchical menus in the web applications built with Microsoft ASP.NET technology versions 1.1 and 2.
Design patterns
ExpertMenu is heavily based on industry proven design patterns and principles that allow it to achieve great flexibility and acquire features that are not available among its competitors.
  • Composite Pattern
    Every menu group in ExpertMenu contains not only menu items and menu separators, but also other menu groups. This pattern allows building highly sophisticated, yet monolith menus with easy keyboard navigation and programmatic support. See Monolith Windows Start Menu, Monolith Word Panel Menu.

  • Model-View separation
    In ExpertMenu the most widely known MVC pattern is used to separate the menu hierarchy (Model) from its presentation (View) by introducing specialized objects - Looks - that are responsible for presentation of menu data objects. A menu group, item or separator doesn't contain any presentation properties except a single reference to a specialized look object. Moreover, a look can be automatically bound to a menu object based on criteria defined for a look. In the last case a data object is unaware of its view until look binding occurs and it acquires a look.
Original ExpertLooks© technology
Presentation of controls and their elements in ExpertControls suite is based on a concept of Look. There is a hierarchy of specialized Looks that are responsible for presentation of a control and its structural elements. The main advantages of ExpertLooks© over existing Style-like approaches are:
  • Low coupling and High cohesion
    Looks are highly specialized. They contain only the necessary properties. They are easily configurable and object oriented.

  • Looks inheritance avoids duplication
    Any look can inherit another look by referencing the base look with Base property. This allows you to define a hierarchy of looks where all common presentation attributes are defined in a small number of base looks. Absence of duplication causes easy configuration changes and small control rendering size.

  • Declarative Look Binding
    You can declaratively define how a Look is bound to a data object (menu item, group, separator, tree node) by defining simple bind criteria. There is no need to set any presentation properties in the data objects because a Look contains all necessary information about how to bind itself to the object and how to render the object.
Light-weight Rendering
Only menu data objects and looks are rendered on the page by the server control. Full menu HTML code is rendered in place on the client side. This causes small control output and good performance both on the client and server side.
Overlap Selects
By default, popping up menu groups overlap select elements and other windowed elements in IE.
Easy configuration
A menu can be configured through inline code in the containing aspx page or through an external XML file. ExpertMenu Designer makes it easy to define a menu. You can freely select any pre-defined Menu Skin (Office 2003, Windows XP, Tab 3D, Blue 3D and others) and fully base your menu on it or tune a built-in skin to satisfy the specific needs.
CSS and JavaScript free configuration
All menu presentation attributes can be fully defined within Looks. CSS classes are also supported in Looks. JavaScript libraries are integrated into the assembly and automatically processed by the custom http handler (in ASP.NET 1.1) or standard resource handler (in ASP.NET 2).
Templated Items
Specialized TemplateLook allows defining an arbitrary content within its template. Therefore, an item can contain other web controls, user controls or plain HTML as its content.
Scrollable Menu Groups
A menu group can be easily configured to scroll its content in a number of ways.
Keyboard Support
ExpertMenu supports keyboard navigation and menu activation with access keyboard shortcut. It also supports keyboard shortcuts to fire items events.
Menu items can be dragged and dropped within a menu. This allows the users of your application to easily customize menus.
Context Menus
A pair of ExpertMenu sub-classes allows defining Page context menus and Element-bound context menus.
Floating Menus
ExpertMenu can be configured to be floating, keeping the same position on the page regardless of the page scroll position.
Cross-Frame Menus
ExpertMenu can work in the cross-frame mode when the top group is located in one frame and all sub-menus pop up in another.
Show Selected Path
The path to the currently selected item in a menu can be highlighted both in the menu ( Selection based on the page URL, Selection based on the page URL + Query parameters, Selection based on the PostBack ) and depicted by the specialized add-in ExpertPath control.
Role Based Access
Access to menu items can be restricted based on the list of security roles that the user belongs to.
Rich Server and Client API
You can control every aspect of menu creation and behavior on the server and client side using supplied server and client API. See installed documentation for mode details.
Cross-browser support
ExpertMenu supports a wide variety of modern browsers. IE5+, NN6+, Mozilla 1+, FireFox, Opera 7+ and others are supported. With using CSS classes in Looks you can achieve supporting old down-level browsers.
Data Binding
ExpertMenu can be transparently data-bound to ASP.NET 2 DataSource controls, both XmlDataSource and SiteMapDataSource. In the next release data binding will also be perfomed on datasets.
  • Sub-menu expanding and collapsing can be animated with cross-browser or IE-specific effects
  • Vertical and Horizontal menu groups
  • Various group pop up directions
  • Auto adjusting to window boundaries
  • Check / Uncheck menu items on the server or client side.
Copyright © 2003-2021 ASP.NET Expert Group. All rights reserved.