473,396 Members | 1,933 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Page_Load method issues with Back Button

Hi,

I have a question regarding the Page_Load method and Back Button of
Internet explorer. I have created a webform. In that webform I have several
Text Boxes. Also I have two buttons. When I click on button1, it populates
the text boxes with person1 details. When I click on button2, it populates
the text box with person2 details and redirects to webform2. In webform2 if I
click on Back Button of Internet Explorer it should display details of
person2. But I am getting details of person1. I am thinking the reason for
this might be like this. When I Click on button1 in webform1, it actually
creates a new webform1. when I click on button2 on this new webform1 it is
actually not creating the new webform but just redirecting to webform2. So
when I click on back button it is displaying person1 details. Is there a
workaround for this? Please let me know.

Thnx,
Sridhar.
Jan 11 '06 #1
7 2446
Sridhar,

You're very close to figuring this out yourself. You are somewhat correct in
saying that the second button click doesn't create the web form. The web
form does get created on the server. But the server is never sending it to
the client. Instead the client receives the response.redirect and still has
the original first form in it's cache.

To work around this problem your redirect has to occurr client side. The way
I would do it would be to populate the second instance of the form and send
it back to the client but also send back a clientside startup script (i.e.
RegisterStartupScript) that will use a javascript redirect to send the
client to the new page. This way the client will actually cache the second
version of the form. However, you may need to do something special in that
script so that the redirect doesn't occurr if the back button has been hit.

A sample javascript redirect script is here:
http://www.codeave.com/javascript/code.asp?u_log=7002
--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
Hi,

I have a question regarding the Page_Load method and Back Button of
Internet explorer. I have created a webform. In that webform I have
several
Text Boxes. Also I have two buttons. When I click on button1, it populates
the text boxes with person1 details. When I click on button2, it populates
the text box with person2 details and redirects to webform2. In webform2
if I
click on Back Button of Internet Explorer it should display details of
person2. But I am getting details of person1. I am thinking the reason for
this might be like this. When I Click on button1 in webform1, it actually
creates a new webform1. when I click on button2 on this new webform1 it is
actually not creating the new webform but just redirecting to webform2. So
when I click on back button it is displaying person1 details. Is there a
workaround for this? Please let me know.

Thnx,
Sridhar.

Jan 11 '06 #2
Hi Justin,

Thanks for the clarification. In fact I did use the
RegisterStartupScript to do that. But as you said I need to do something
special in that script so that the redirect doesn't occurr if the back
button has been hit. I am not knowing how to do that. Can you give me some
ideas on how to do that?

Thnx,
Sridhar.

"S. Justin Gengo" wrote:
Sridhar,

You're very close to figuring this out yourself. You are somewhat correct in
saying that the second button click doesn't create the web form. The web
form does get created on the server. But the server is never sending it to
the client. Instead the client receives the response.redirect and still has
the original first form in it's cache.

To work around this problem your redirect has to occurr client side. The way
I would do it would be to populate the second instance of the form and send
it back to the client but also send back a clientside startup script (i.e.
RegisterStartupScript) that will use a javascript redirect to send the
client to the new page. This way the client will actually cache the second
version of the form. However, you may need to do something special in that
script so that the redirect doesn't occurr if the back button has been hit.

A sample javascript redirect script is here:
http://www.codeave.com/javascript/code.asp?u_log=7002
--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
Hi,

I have a question regarding the Page_Load method and Back Button of
Internet explorer. I have created a webform. In that webform I have
several
Text Boxes. Also I have two buttons. When I click on button1, it populates
the text boxes with person1 details. When I click on button2, it populates
the text box with person2 details and redirects to webform2. In webform2
if I
click on Back Button of Internet Explorer it should display details of
person2. But I am getting details of person1. I am thinking the reason for
this might be like this. When I Click on button1 in webform1, it actually
creates a new webform1. when I click on button2 on this new webform1 it is
actually not creating the new webform but just redirecting to webform2. So
when I click on back button it is displaying person1 details. Is there a
workaround for this? Please let me know.

Thnx,
Sridhar.


Jan 11 '06 #3
Sridhar,

Off the top of my head here's the way I think I'd try first:

Create a hidden filed on the form that can hold a value which will tell your
startup script if it should run or not. Just before the script does the
redirect set the hidden field to a different value. I believe that when the
back button is clicked the hidden field will retain the new value and may be
used to keep the script from running.

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:5B**********************************@microsof t.com...
Hi Justin,

Thanks for the clarification. In fact I did use the
RegisterStartupScript to do that. But as you said I need to do something
special in that script so that the redirect doesn't occurr if the back
button has been hit. I am not knowing how to do that. Can you give me some
ideas on how to do that?

Thnx,
Sridhar.

"S. Justin Gengo" wrote:
Sridhar,

You're very close to figuring this out yourself. You are somewhat correct
in
saying that the second button click doesn't create the web form. The web
form does get created on the server. But the server is never sending it
to
the client. Instead the client receives the response.redirect and still
has
the original first form in it's cache.

To work around this problem your redirect has to occurr client side. The
way
I would do it would be to populate the second instance of the form and
send
it back to the client but also send back a clientside startup script
(i.e.
RegisterStartupScript) that will use a javascript redirect to send the
client to the new page. This way the client will actually cache the
second
version of the form. However, you may need to do something special in
that
script so that the redirect doesn't occurr if the back button has been
hit.

A sample javascript redirect script is here:
http://www.codeave.com/javascript/code.asp?u_log=7002
--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
> Hi,
>
> I have a question regarding the Page_Load method and Back Button of
> Internet explorer. I have created a webform. In that webform I have
> several
> Text Boxes. Also I have two buttons. When I click on button1, it
> populates
> the text boxes with person1 details. When I click on button2, it
> populates
> the text box with person2 details and redirects to webform2. In
> webform2
> if I
> click on Back Button of Internet Explorer it should display details of
> person2. But I am getting details of person1. I am thinking the reason
> for
> this might be like this. When I Click on button1 in webform1, it
> actually
> creates a new webform1. when I click on button2 on this new webform1 it
> is
> actually not creating the new webform but just redirecting to webform2.
> So
> when I click on back button it is displaying person1 details. Is there
> a
> workaround for this? Please let me know.
>
> Thnx,
> Sridhar.


Jan 11 '06 #4
Hi Justin,

Thank you for taking time in replying back. I tried that but it is not
retaining the new value. It is going back to the past value. So again it is
redirecting it.

Thnx,
Sridhar.

"S. Justin Gengo" wrote:
Sridhar,

Off the top of my head here's the way I think I'd try first:

Create a hidden filed on the form that can hold a value which will tell your
startup script if it should run or not. Just before the script does the
redirect set the hidden field to a different value. I believe that when the
back button is clicked the hidden field will retain the new value and may be
used to keep the script from running.

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:5B**********************************@microsof t.com...
Hi Justin,

Thanks for the clarification. In fact I did use the
RegisterStartupScript to do that. But as you said I need to do something
special in that script so that the redirect doesn't occurr if the back
button has been hit. I am not knowing how to do that. Can you give me some
ideas on how to do that?

Thnx,
Sridhar.

"S. Justin Gengo" wrote:
Sridhar,

You're very close to figuring this out yourself. You are somewhat correct
in
saying that the second button click doesn't create the web form. The web
form does get created on the server. But the server is never sending it
to
the client. Instead the client receives the response.redirect and still
has
the original first form in it's cache.

To work around this problem your redirect has to occurr client side. The
way
I would do it would be to populate the second instance of the form and
send
it back to the client but also send back a clientside startup script
(i.e.
RegisterStartupScript) that will use a javascript redirect to send the
client to the new page. This way the client will actually cache the
second
version of the form. However, you may need to do something special in
that
script so that the redirect doesn't occurr if the back button has been
hit.

A sample javascript redirect script is here:
http://www.codeave.com/javascript/code.asp?u_log=7002
--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
> Hi,
>
> I have a question regarding the Page_Load method and Back Button of
> Internet explorer. I have created a webform. In that webform I have
> several
> Text Boxes. Also I have two buttons. When I click on button1, it
> populates
> the text boxes with person1 details. When I click on button2, it
> populates
> the text box with person2 details and redirects to webform2. In
> webform2
> if I
> click on Back Button of Internet Explorer it should display details of
> person2. But I am getting details of person1. I am thinking the reason
> for
> this might be like this. When I Click on button1 in webform1, it
> actually
> creates a new webform1. when I click on button2 on this new webform1 it
> is
> actually not creating the new webform but just redirecting to webform2.
> So
> when I click on back button it is displaying person1 details. Is there
> a
> workaround for this? Please let me know.
>
> Thnx,
> Sridhar.


Jan 11 '06 #5
when a user hits back, the browser generally fetchs the previous page from
its caches, no request is sent to the server. if the last request response
was a redirect, as it was in your case, then the redirect is done again. you
can turn of caching of your pages, which will cause the browser to resubmit
the form post, rather than fetch from the cache. this will cause the browser
to popup the dialog asking the user if they want to resubmit the form.

a better approach is design your site to be navigation friendly. in asp.net
1.0 don't overload a button like you have, either navigate, or save, but not
both. in asp.net 2.0 you can support this by posting to the new page, rather
than using redirect, then caching will work correctly.

-- bruce (sqlwork.com)

"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
Hi,

I have a question regarding the Page_Load method and Back Button of
Internet explorer. I have created a webform. In that webform I have
several
Text Boxes. Also I have two buttons. When I click on button1, it populates
the text boxes with person1 details. When I click on button2, it populates
the text box with person2 details and redirects to webform2. In webform2
if I
click on Back Button of Internet Explorer it should display details of
person2. But I am getting details of person1. I am thinking the reason for
this might be like this. When I Click on button1 in webform1, it actually
creates a new webform1. when I click on button2 on this new webform1 it is
actually not creating the new webform but just redirecting to webform2. So
when I click on back button it is displaying person1 details. Is there a
workaround for this? Please let me know.

Thnx,
Sridhar.

Jan 11 '06 #6
Hi Bruce,

Thank you for the reply. I am using ASP.NET 1.1. I tried turning off
the cache. The problem is when the user clicks the Back Button, it says
"Warning: PAge has expired" something like that. Please click refresh. I
don't want to display that message every time the user hits the back button.
That is why I am going with this approach. If you know the workaround for
this situation please let me know.

Thnx,
Sridhar.

"Bruce Barker" wrote:
when a user hits back, the browser generally fetchs the previous page from
its caches, no request is sent to the server. if the last request response
was a redirect, as it was in your case, then the redirect is done again. you
can turn of caching of your pages, which will cause the browser to resubmit
the form post, rather than fetch from the cache. this will cause the browser
to popup the dialog asking the user if they want to resubmit the form.

a better approach is design your site to be navigation friendly. in asp.net
1.0 don't overload a button like you have, either navigate, or save, but not
both. in asp.net 2.0 you can support this by posting to the new page, rather
than using redirect, then caching will work correctly.

-- bruce (sqlwork.com)

"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:A8**********************************@microsof t.com...
Hi,

I have a question regarding the Page_Load method and Back Button of
Internet explorer. I have created a webform. In that webform I have
several
Text Boxes. Also I have two buttons. When I click on button1, it populates
the text boxes with person1 details. When I click on button2, it populates
the text box with person2 details and redirects to webform2. In webform2
if I
click on Back Button of Internet Explorer it should display details of
person2. But I am getting details of person1. I am thinking the reason for
this might be like this. When I Click on button1 in webform1, it actually
creates a new webform1. when I click on button2 on this new webform1 it is
actually not creating the new webform but just redirecting to webform2. So
when I click on back button it is displaying person1 details. Is there a
workaround for this? Please let me know.

Thnx,
Sridhar.


Jan 11 '06 #7
Sridhar,

Hmmmm, I was hoping the new value would be retained, but I wasn't sure...

I'll think about this and see if I can think of something... In the
short-run is there a reason not to just use panels and keep both forms on
the same page? Then there would be no redirect.

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:70**********************************@microsof t.com...
Hi Justin,

Thank you for taking time in replying back. I tried that but it is not
retaining the new value. It is going back to the past value. So again it
is
redirecting it.

Thnx,
Sridhar.

"S. Justin Gengo" wrote:
Sridhar,

Off the top of my head here's the way I think I'd try first:

Create a hidden filed on the form that can hold a value which will tell
your
startup script if it should run or not. Just before the script does the
redirect set the hidden field to a different value. I believe that when
the
back button is clicked the hidden field will retain the new value and may
be
used to keep the script from running.

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
Nietzsche
"Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
news:5B**********************************@microsof t.com...
> Hi Justin,
>
> Thanks for the clarification. In fact I did use the
> RegisterStartupScript to do that. But as you said I need to do
> something
> special in that script so that the redirect doesn't occurr if the back
> button has been hit. I am not knowing how to do that. Can you give me
> some
> ideas on how to do that?
>
> Thnx,
> Sridhar.
>
> "S. Justin Gengo" wrote:
>
>> Sridhar,
>>
>> You're very close to figuring this out yourself. You are somewhat
>> correct
>> in
>> saying that the second button click doesn't create the web form. The
>> web
>> form does get created on the server. But the server is never sending
>> it
>> to
>> the client. Instead the client receives the response.redirect and
>> still
>> has
>> the original first form in it's cache.
>>
>> To work around this problem your redirect has to occurr client side.
>> The
>> way
>> I would do it would be to populate the second instance of the form and
>> send
>> it back to the client but also send back a clientside startup script
>> (i.e.
>> RegisterStartupScript) that will use a javascript redirect to send the
>> client to the new page. This way the client will actually cache the
>> second
>> version of the form. However, you may need to do something special in
>> that
>> script so that the redirect doesn't occurr if the back button has been
>> hit.
>>
>> A sample javascript redirect script is here:
>> http://www.codeave.com/javascript/code.asp?u_log=7002
>>
>>
>> --
>> Sincerely,
>>
>> S. Justin Gengo, MCP
>> Web Developer / Programmer
>>
>> www.aboutfortunate.com
>>
>> "Out of chaos comes order."
>> Nietzsche
>> "Sridhar" <Sr*****@discussions.microsoft.com> wrote in message
>> news:A8**********************************@microsof t.com...
>> > Hi,
>> >
>> > I have a question regarding the Page_Load method and Back Button
>> > of
>> > Internet explorer. I have created a webform. In that webform I have
>> > several
>> > Text Boxes. Also I have two buttons. When I click on button1, it
>> > populates
>> > the text boxes with person1 details. When I click on button2, it
>> > populates
>> > the text box with person2 details and redirects to webform2. In
>> > webform2
>> > if I
>> > click on Back Button of Internet Explorer it should display details
>> > of
>> > person2. But I am getting details of person1. I am thinking the
>> > reason
>> > for
>> > this might be like this. When I Click on button1 in webform1, it
>> > actually
>> > creates a new webform1. when I click on button2 on this new webform1
>> > it
>> > is
>> > actually not creating the new webform but just redirecting to
>> > webform2.
>> > So
>> > when I click on back button it is displaying person1 details. Is
>> > there
>> > a
>> > workaround for this? Please let me know.
>> >
>> > Thnx,
>> > Sridhar.
>>
>>
>>


Jan 11 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Alfons Puig | last post by:
Some pages (not all the pages, but I can't observe differences) opened from javascript via window.showModalDialog() doesn't fire the codebehind Page_Load event the second (and further) time it is...
4
by: Christian Ista | last post by:
Hello, On a page I have a button, I treat the event click of this button. Is it normal before I treat the method myButton_click I pass throught the Page_load event ? That's mean what, when I...
0
by: Itai | last post by:
Background: I have four Web Form pages with respective C# code behind files, all in the same project: localhost/vpath1 Page1.aspx Page2.aspx
2
by: Frank Schumacher | last post by:
Hi Folks, I have a problem with the order of events fired by ASP.NET. I found many articles which explaining the lifecycle of a site, but I found none which took the event from a Control on the...
0
by: jonelling | last post by:
I am having a problem where the page load event is not being fired for certain user controls that I load dynamically in placeholders. Here is what I'm doing in brief, with full test code supplied...
3
by: Imran Aziz | last post by:
Hello All, I have a search text and button that post data and my button handler filters the repeater control. However when the button is clicked the first time. The page_load event is being called...
1
by: puja | last post by:
hi all, I have this .aspx page for which the Page_load event occurs twice. I found out while debugging. After searching google, I tried checking with Page.Ispostback method and also had...
17
by: Arpan | last post by:
When a Button is clicked in a Web Form in an ASPX page, the Form will post back to itself. Under such circumstances (i.e. when a Button is clicked), will the Page_Load sub execute first & then will...
8
by: John Austin | last post by:
I need to understand why if I add a control and use AddHandler to connect its click event, it will work in Page_Load, but not in a Button_Click. The idea is that the user types some data, presses...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.