Curious if anyone is having an issue with the WebDataGrid and IE9. I'm running the 2008.2 edition of hte NetAdvantage tools, and everything worked fine with IE8 and even the betas of IE9.
I installed IE9 today and noticed that when I select a row in my grid, everything is fine. But when I go to select a second row, I get the following javascript error:
Unable to get value of the property 'init': object is null or undefined
It's occurring here:
igtbl_StateChange.prototype.init=function(type,grid,obj,value)
...and this is the offending line (first line of the function definition...
igtbl_StateChange.base.init.apply(this,[type]);
I have not seen this specific error. However, in the case of the hieracal grid on 2010v3 build 2088 drills to the second level band don't seem to function in IE9 but FF and Chrome are still OK
I'm using 2008.2 too, and I get the same error.
I tried to go deeper into the issue using the IE9 integrated debugger, and I've seen that the igtbl_StateChange object looses the prototype. To be more specific, it seems to loose the "base" property on postback. It seems as the object definition becomes corrupted.
This error was present also in the betas of IE9.
I don't know how to workaround this, for me is a big problem because it breaks our app with IE9.
I think this blog post from Infragistics (http://community.infragistics.com/blogs/taz_abdeali/archive/2011/02/17/ie9-support-plans-for-asp-net-controls.aspx) explains their plans to fix this. I'm not happy that it may take a month, but I'm not sure what else to do.
Yes, I'm seeing the exact same behavior with the state object losing itself. I'm not sure exactly where this is happening. If I find anything else out, I'll update this post.
The 2010.3 service release fixed my issues with the grid losing state in IE9. Banding is also fixed. I still have to do more regression testing, but the service release that came out on 3/17/2011 seems to do the trick.
The problem is caused by the igtbl_dispose method which delete the prototype properties and functions rather than just the local variables.
The fix for this is as follows:
Edit ig_WebGrid.js and change the function igtbl_dispose(obj) as follows:
Change:
for (var item in obj) {
if (typeof (obj[item]) != "undefined" && obj[item] != null && !obj[item].tagName && !obj[item].disposing && typeof (obj[item]) != "string")
to
for (var item in obj) { if (typeof (obj[item]) != "undefined" && obj[item] != null && !obj[item].tagName && !obj[item].disposing && typeof (obj[item]) != "string" && obj.hasOwnProperty(item))