Hi Glenn,
Have you tried posting the issue on ExtJS forum ? I remember coming across a similar issue with IE and ExtJS Grid and at least in my case, it was related to Event bubbling. Try returning "false" from the row event listener. Not sure if that will help but worth a try.
Kishore
Much to my dismay, this issue 'fixed itself'. It persisted through multiple reboots, then mysteriously went away.
Thanks for your reply, kishores. I had tried stopping the event bubbling, but it had no effect. Obviously something else was in play, but I still have no idea what it was...
I was initially using IE through Remote Desktop connection, and although I have never seen any issue with RDC before, It looks like that may have been at least a part of my issue. I happened to disconnect my RDC connection and log directly into the system. When I logged in locally, IE crashed. When I reopened IE, my mashlets worked correctly in all respects: The Grid Data was cleared, the events each raised once, and the events were each received once.
Like I mentioned before, this problem had persisted through many restarts of IE, and reboots of the desktop. I can kind of see RDC doing something odd to the click events, but since I was not seeing the same behavior with Firefox over RDC, I have a hard time buying that.
Very frustrating to have errors like that simply vanish.
Thanks,
Glenn


I have created some mashlets based on the samples for inter-mashlet communication. This uses ServiceStore to load data into a GridPanel. Everything is working as expected in Firefox, Safari, Opera and Chrome. IE is a dismal failure. 1) Clicking a grid row in IE causes 2 rowclick events to fire. Both events have the same target. Here is the hacked up debug code that I use within onRowClick to hopefully show me where the second event is coming from: $('rbsDebugPane').innerHTML += ('
' + e.getTarget().outerHTML.replace(/&/g,'&').replace(//g,'>') + '');
Unfortunately, the targets are the same, and this was the best test I could come up with to check the event origin.
Firing the event twice is not that big of a deal - except that the javascript performance in IE is so terribly bad compared to the other browsers that I'd at least like it to stop doing twice the work.
I have tried stopPropagation() and cancelBubble=true to stop the extra processing, but neither works and it does appear that both events are fired from the same elemtent anyway.
2) Here's the big problem... When you load different data into the grid by updating the request in the ServiceStore, it does not purge the old data. It drops it out of the DOM (the table rows that make up the GridPanel are removed & replaced), but the underlying data from all previous loads are persisted.
Now I get 2 events raised PER load. All of then show the same target element having triggered the event, but the data for the row is different (one record from each dataset that has been loaded).
That's a disaster, especially since I'm publishing an event for the data, and only the last published data actually shows up in the other Mashlet - always from the first load.
IE reports the following error: Message: Unspecified error. Line: 20481 Char: 1 Code: 0 URI: http://myMachine:8080/static/common/js/ext/2.1/ext-all-prototype-presto.js
This is part of the GridPanel code, but I don't see an error, and since "Unspecified" isn't very helpful, I don't know how to correct this.
In the debug version of the .js, the code that maps to the line number above is:
scrollToTop : function(){
this.scroller.dom.scrollTop = 0;
this.scroller.dom.scrollLeft = 0;
},
Maybe scrollTop and scrollLeft are not supported in IE? This seems like a pretty bad symtom of what appears to be a minor error at best. I'm thinking that part of clearing the old data is to scroll the control back to the top, and when this fails, the clear/destroy stops abruptly.
This is the debug code I am using to examine the data in the record passed to each of the multiple calls of RowClick: gridPanel.getSelectionModel().getSelected().fields.each(function(i,x,l) { $('rbsDebugPane').innerHTML += ('
'); });
Note that I'm accessing the fields and data of the selected row, which is coming from the data store rather than looking at the data displayed in the DOM table of the gridPanel.
Has anyone encountered this, or better yet found a solution?
Thanks, Glenn