Update on Toolkit compatibility with Safari

So I finally got a hold of a Mac I could use to try to figure out what the Safari issues are with the Toolkit.

What I found was that the toolkit classes didn't work at all.  Meaning, it wasn't that they were just buggy or something, they weren't even getting called.

After several hours of investigation, I finally figured out the core issue: if you register your class namespace as having any upper case characters at all, you don't get loaded on Safari.  All of the behaviors in the toolkit have the namespace "atlasControlToolkit", which means none of them load.

So to get one of the toolkit extenders working on Safari:

1) Open the .js file, scroll to the bottom and replace

Sys.TypeDescriptor.addType('atlasControlToolkit', ...);

with

Sys.TypeDescriptor.addType('atlascontroltoolkit', ...);

2) On that control, open the <control name>Extender.cs file, add a constructor, and add this call:

public ConfirmButtonExtender()
        {
            SuppressValidationScript = true;
        }

The reason you need step two is the base toolkit assembly also emits a badly-named namespace so you'll still get problems there if you're running in debug mode.  The validation script just tries to make sure that you've hooked everything up properly.  Note we'll be turning this off by default in our next drop - it's not super useful in most cases.

Even so, not all the controls work perfectly.  The list of controls I need to take a closer look at:

Major Issues

  • CascadingDropDown - doesn't appear to be calling back on the web service
  • HoverMenu - popup doesn't show
  • PopupControl - auto-close isn't working, and value isn't getting pushed to the text box

Issues:

  • TextBoxWatermark - doesn't clear on postback.  If you don't have text in there, you'll get the prompt text on the server-side as the control's text. 

The rest of the controls seem to work okay.  I'm shooting to get all of these things ironed out this week...