The latest Microsoft patch for Internet Explorer included a change to ActiveX requiring all interactive controls to activate before they can be used. This change has impacted web applications all over the world including Dundas products.
Figure 1: Chart rendered as a Flash image requiring activation
While the Chart can still be viewed fine after this patch as an image or an ActiveX object, the interactivity included in ActiveX objects, such as Flash, require a preliminary click by the user. This is not attractive functionality and fortunately Microsoft has released an article detailing how to fix it.
We have gone a step further and implemented a class library based on the Microsoft article that you can use with any web-control to automatically activate an interactive control. To use this class library, simply add the class to your solution and the namespace
Dundas.Utilities to the webpage that uses a web-control that renders as an ActiveX object. As well, you may need to change the security for the root directory of the web application to allow your ASPNET user to write.
Page_Load event requires the following code (note that
this.Chart1 is the web-control rendering as an ActiveX object):
AutoActivateControl autoActivateControl = new AutoActivateControl(this.Chart1);
That's it! Your control will no longer require activation before interactivity can be used.
How this control works
- Attaches to the
PreRender event of the web-control passed to it.
- Upon the
PreRender event, forces the web-control to render into memory instead of to the HTML output page and turns the Visibility property of the web-control to false so that it does not render to the output page.
document.write('<object ...> ... </object>')
A little more information
Also, please note that this is a direct implementation of Microsoft's recommendation and is very simplistic. While it does work in basic cases, it will require modification to work in most real environments. It is provided as a base for further modification by those who require this functionality.