Creative terminology and an Infragistics Ultrawebgrid bug
Our industry depends on the need to communicate precisely. Imprecise communication leads to errors in software. Agreed? That’s probably one reason why people take exception to folks being somewhat free-wheeling with the terminology we use, especially when they coin new terms for which we have perfectly good and descriptive words in English.
As I was trying to figure out the right terminology - lets call it the right amount of indignation - regarding a bug I ran into with the Infragistics grid control, I thought of the term “Leaky Abstraction“. Sounds very official doesn’t it? Sounds like something a professor might address in CS 202 or some such class. I was trying to make a point about the hacky sort of dependencies in the Infragistics bug and this term just came to mind. I must have read it somewhere on a blog. As a matter of fact I think it was several blogs sounding very technical about the fact that ASP.NET is nice overall but has some limitations in its design philosophy. That whole web forms approach for one. But I am getting off the subject here.
I was trying to find a way to express my indignation and this term came to mind. I don’t know what the term means. So I had to go look it up. Turns out that this is also a made up bit of terminology. Sounds very official though doesn’t it? So credit goes to the creator of it - a pretty well known software marketer who can talk extremely well and has a fantastic talent for dressing up even his most mundane ideas in wonderful concepts and language. Its a talent and I am envious.
In any case seeing the evidence of so much creativity makes me want to coin a few phrases of my own.
The bug? Oh its an annoying bit of nonsense. If you literally put some JavaScript inline into a master page you run the risk that Infragistics Ultrawebgrid gets completely confused about its layout markup. The end result in my case, it ignored the horizontal and vertical scrolling settings. Its true ! Here is the comment from Infragistics tech support.
“…. The page’s controls collection is created differently if the page has inline expressions. In a page without inline expressions, the first element in the controls collection is a Literal control that has all of the html between the top of the page and the first server control. When there’s an inline expression, the first element in the controls collection is the first server control on the page (usually the <head> element or the <form>).
The grid needs the literal with all that markup to figure out what doctype the grid has because it needs to render slightly differently depending if the page is in quirks mode or standards mode. One of the big differences is it adds a “position:relative” style to the scrolling <div> area to prevent the problem with the rows spilling out of the grid.
The way to fix it is to move the inline code to the code behind. Use the Page.ClientScript.RegisterClientScriptBlock method to generate the javascript based on the Request.Params[”expired”] value. ……”
Comments
Comment from Gerry
Date: 6/24/2008, 4:59 pm
Thank you for posting this. You ended my morning of tearing my hair out and allowed me to to a brief ‘victory dance’!
Comment from FooniUttepe
Date: 10/22/2008, 5:30 am
Write a comment