Tell user page is "working" - not changing the page

I have a situation where when the user selects an item in a drop down list,
the code behind is called to update the values in another list on the page.
This update can take 3 - 5 seconds.

When it is complete, the same page is still displayed. What is the best way
to tell the user the page is working? I don't like the idea of switching to a
page that says "thinking..." and then going back to the page on.

Advertisements

"David Thielen" wrote:
> Hi;
>
> .NET 2.0
>
> I have a situation where when the user selects an item in a drop down list,
> the code behind is called to update the values in another list on the page.
> This update can take 3 - 5 seconds.
>
> When it is complete, the same page is still displayed. What is the best way
> to tell the user the page is working? I don't like the idea of switching to a
> page that says "thinking..." and then going back to the page on.
>
> --
> thanks - dave
> david_at_windward_dot_net
> http://www.windwardreports.com
>

Advertisements

For your scenario, you want to display some message on page to inform the
user the page is executing some task and do not leave the current page, I
think one common approach is use client-side script code to display an
image or Text (label or html <div> ) in the center of the page. Actually
we can put that image or Label in the page in advance and make it
invisible(set the html "display" style to "none". For example:

There's a link to the code at that page.
Although it was written as an ASP.NET 1.1 sample, it will work in 2.0.

Juan T. Llibre, asp.net MVP
aspnetfaq.com : http://www.aspnetfaq.com/
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
===================================
"David Thielen" <> wrote in message
news:...
> Hi;
>
> .NET 2.0
>
> I have a situation where when the user selects an item in a drop down list,
> the code behind is called to update the values in another list on the page.
> This update can take 3 - 5 seconds.
>
> When it is complete, the same page is still displayed. What is the best way
> to tell the user the page is working? I don't like the idea of switching to a
> page that says "thinking..." and then going back to the page on.
>
> --
> thanks - dave
> david_at_windward_dot_net
> http://www.windwardreports.com
>

I've needed to do a similar thing, but took a slightly different
approach. On the submit button, it calls a javascript function which
opens a "Please Wait" modeless dialog. In the URL of the Please Wait
window I pass the postback ID and EventArg of the button (which would be
used for the __doPostBack()) in the querystring and I pass the Window
object into the window.showModelessDialog() method similar to the
example here:http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml
/reference/methods/showmodelessdialog.asp

Then I have a ContinuePostBack() method in the main page where the
submit button exists which takes the EventID and EventArg and simply
calls the __doPostBack() event. When the Please Wait window opens, it
calls the ContinuePostBack function on the main window and passes in the
EventID and EventArg from its URL. The ContinuePostBack will start the
PostBack process which after it completes the page refreshes which
clears the Please Wait modeless dialog, so you don't have to worry about
trying to close that window. I originally tried to just open the Please
Wait window then continue with the __doPostBack, but I think there was a
timing issue because the Please Wait would not always display. So I
resolved that by having the Please Wait window be the thing that called
the ContinuePostBack function... that gaurantees the window will open
before the postback starts.

I'm thinking about taking this another step by having the long process
write status messages to a session variable and having the Please Wait
window auto-refresh and read that session variable every 5 seconds or
so.

"Mike Ogden" wrote:
> I've needed to do a similar thing, but took a slightly different
> approach. On the submit button, it calls a javascript function which
> opens a "Please Wait" modeless dialog. In the URL of the Please Wait
> window I pass the postback ID and EventArg of the button (which would be
> used for the __doPostBack()) in the querystring and I pass the Window
> object into the window.showModelessDialog() method similar to the
> example here:
> http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml
> /reference/methods/showmodelessdialog.asp
>
> Then I have a ContinuePostBack() method in the main page where the
> submit button exists which takes the EventID and EventArg and simply
> calls the __doPostBack() event. When the Please Wait window opens, it
> calls the ContinuePostBack function on the main window and passes in the
> EventID and EventArg from its URL. The ContinuePostBack will start the
> PostBack process which after it completes the page refreshes which
> clears the Please Wait modeless dialog, so you don't have to worry about
> trying to close that window. I originally tried to just open the Please
> Wait window then continue with the __doPostBack, but I think there was a
> timing issue because the Please Wait would not always display. So I
> resolved that by having the Please Wait window be the thing that called
> the ContinuePostBack function... that gaurantees the window will open
> before the postback starts.
>
> I'm thinking about taking this another step by having the long process
> write status messages to a session variable and having the Please Wait
> window auto-refresh and read that session variable every 5 seconds or
> so.
>
> *** Sent via Developersdex http://www.developersdex.com ***
>

"Juan T. Llibre" wrote:
> Dave Sussman and Alex Homer wrote this pretty "staged load" page display:
>
> http://www.daveandal.net/books/6744/loadpost/stagedloading.aspx
>
> It displays progress without switching the page.
>
> There's a link to the code at that page.
> Although it was written as an ASP.NET 1.1 sample, it will work in 2.0.
>
>
>
> Juan T. Llibre, asp.net MVP
> aspnetfaq.com : http://www.aspnetfaq.com/
> asp.net faq : http://asp.net.do/faq/
> foros de asp.net, en espaÃ±ol : http://asp.net.do/foros/
> ===================================
> "David Thielen" <> wrote in message
> news:...
> > Hi;
> >
> > .NET 2.0
> >
> > I have a situation where when the user selects an item in a drop down list,
> > the code behind is called to update the values in another list on the page.
> > This update can take 3 - 5 seconds.
> >
> > When it is complete, the same page is still displayed. What is the best way
> > to tell the user the page is working? I don't like the idea of switching to a
> > page that says "thinking..." and then going back to the page on.
> >
> > --
> > thanks - dave
> > david_at_windward_dot_net
> > http://www.windwardreports.com
> >
>
>
>

Share This Page

Welcome to The Coding Forums!

Welcome to the Coding Forums, the place to chat about anything related to programming and coding languages.

Please join our friendly community by clicking the button below - it only takes a few seconds and is totally free. You'll be able to ask questions about coding or chat with the community and help others.
Sign up now!