views:

477

answers:

1

I was working on some ASP.NET 2.0 pages when I noticed that some of the pages' back buttons were unavailable - greyed out. And clicking the drop down menu next to them showed clear results, as if I had come to this page fresh. I looked through the code trying to find something to specifically disable the back buttons (redirects, clever javascript), but found nothing. So I started picking apart the page and noticed that when two particularly large drop down lists (One had 38 thousand items!) were commented out that the back button would again be available. By 'Commented out' I mean I did not databind them in the code behind.

It seems that these pages used to work before I inherited this project. One of the things we did was upgrade the server from .NET 2.0 to .NET 3.5, although the code still targets the 2.0 framework. I doubt this is the culprit though.

This problem occurs in both IE 6 and IE 8 with all the latest updates. It occurs on Server 2003 RC2 with all the updates I could find and on Windows XP machines that the client has selectively updated but are all running IE 6.

My question is, has anyone ever heard of this, and if so, what causes it? Is it just an Internet Explorer bug?

+2  A: 

Well, 38k options @ 28 characters^1 gives one a page size of 1,064,000 characters for the options alone, nevermind the accompanying viewstate. Which, when I think about it is probably what is killing IE as your POST size has to be in the megabytes range.

Personally, rather than beat on the issue which you probably can't fix, I'd go for hitting it from the easier side of re-factoring the interface so users get a managable number of options. I really don't know how one could pick the correct one in 38k in the first place anyhow . . .

^1: <option value="x">y</option> is about as short an option as ASP.NET will generate and that is 28 characters. I'd bet we are looking at far more data than that. I pray this is an intranet app . . .

Wyatt Barnett
38k items sounds like a problem in itself
MedicineMan