Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at
Joined to AJAX Control Toolkit Team

Now I can officially say that, I joined to AJAX Control Toolkit team which I'm very proud of. A number of new challenges and things to learn are waiting for me now. I'm so excited.

First thing I'm going to take is ContextMenu Extender. Kirti put short requirements list on her blog, I will allow myself to copy that post here. Two copies may increase possibility of feedback.


One of our new contributors (that's me) has volunteered to author a new control which will behave like a context menu. It will prevent the default browser menu from showing up when you right click and show you a custom menu and provide you with richer, more relevant functionality. We would have to essentially override the contextmenu event and show a popup. The new context menu could easily use the existing FloatingBehavior support in the Toolkit to show a custom menu control.

Name of the control: ContextMenuExtender

TargetControl: Control

Properties: I am almost stealing this from the HoverMenu control in the Toolkit. The ContextMenu is the HoverMenu handling the contextmenu event instead of the mouseover/mouseout events. We could reuse most of the functionality in that control.

  • TargetControlID: ID of the element, right clicking on which will cause the context menu to show
  • PopupControlID: ID of the menu popup that will serve as the context menu
  • Position: Position of the menu popup with respect to the target control. Any position supported by PopupBehavior?
  • ContextMenuCssClass: Name of the css class that will be applied to the menu popup element.

Accessibility: When the target control is focusable the ContextMenu should be able to be activated using the keyboard alone so the extender needs to support keyboard eventson the target control as well. The popup panel should have the features expected of an accessible control like semantic html, alternate text, high contrast support, keyboard support and more. This would be a to-do for the website developer though and not the control author since the Extender consumes whatever Menu Control is passed to it.

International: Would there be any left-to-right/right-to-left concerns we should have if we are exposing the Position property? Users can make their page globally aware using that, correct?

Usability: This is something that end users who deploy this control should take into consideration. Right-clicking in a browser to expose non-browser menus is not something that users will discover intuitively. It should be considered that the control needs to communicate in some way that it has a contextmenu that is not the default browser one. It needs to be somehow advertised that there is more possible with the target control beyond just clicking and/or hovering over it. Talking about usability, what would be the Safari story? Would any Macintosh users like to chime in?

Any more feature requests, ideas?

Posted 03-09-2007 10:56 AM by Jimmy
Filed under: , , ,


About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)