"Mad Scientist Jr" <us*************@yahoo.com> wrote in message
news:7a**************************@posting.google.c om...
i have a dropdown control with autopostback=on that when selected,
posts back and populates a second dropdown. the 2nd dropdown takes a
while to load, giving the user time to start typing in other fields
before the screen refreshes. i would like to disable any user input
during this time.
I was thinking if it was possible to force the browser to begin
loading the page immediately that it would erase the controls that are
there and the user would be forced to wait (wouldn't be able to press
any buttons, type in any textboxes etc) for the page to refresh.
I started playing around with Response.Buffer/Flush but it didn't
work. Any ideas on if this is possible and if so how to get it to
work?
The problem is something like this:
1, User requests page.aspx
2. Server sends back html for page.aspx, including your dropdown with
autopostback on.
3. User changes selection in dropdown.
4. Page posts back to the server
5. User starts typing into the html sent back in 2.
6. Server sends back html for posted-back page.aspx, including your loaded
second dropdown, overwriting whatever the user had typed.
So you see, what you would need to do is disable the controls on the page
just before the postback begins. When the new html comes back, it will come
back with enabled controls.
This will take a bit of JavaScript in the onchange event of the dropdown.
That script would have to run through the DOM and set the disabled property
of all relevant objects to true.
Now, I can't get you an example. I needed to do this in a control once, and
had a bit of trouble with it. Only certain objects in the DOM implement the
disabled property. Also, in some cases, setting the disabled property will
disable all contained objects, but sometimes it won't and you'll have to
iterate into the child objects. Also, I seem to remember that under some
circumstances, I couldn't entirely disable an anchor object, and had to
screw with the URL instead.
Of course, another option would be to follow one of the various strategies
for producing a "Waiting..." page.
--
John Saunders
johnwsaundersiii at hotmail