move back to bottom of page after postback

move back to bottom of page after postback

am 15.04.2008 05:44:16 von Keith G Hicks

I have a fairly long page with a submit button, a validation summary and a
status label at the bottom of the page. I need it to go back to the bottom
after the post so that the user can see any status information.

I found some code that is supposed to do this but I cannot get it to work.
it compiles and runs but does not move me down to the bottom fo the page.
Here's my VB code that runs at the end of a sub where I post data back to
the database:

Dim Script As New StringBuilder()
Script.Append("")

If (Not
ClientScript.IsClientScriptBlockRegistered("BookMarkScript") ) Then
ClientScript.RegisterClientScriptBlock(Me.GetType,
"BookMarkScript", Script.ToString())
End If

Here's the anchor that is near the bottom of the page:




Can anyone tell me what I'm doing wrong?

Thanks,

Keith

Re: move back to bottom of page after postback

am 15.04.2008 15:13:54 von mark

"Keith G Hicks" wrote in message
news:%23GQGbrqnIHA.4208@TK2MSFTNGP02.phx.gbl...

> Can anyone tell me what I'm doing wrong?

You're using RegisterClientScriptBlock.

This places the JavaScript at the beginning of the webform i.e. just after
the opening

tag. This means that (almost certainly) the rest of the
form including the anchor tag hasn't been created when the script tries to
run.

Use RegisterStartUpScript instead, as this places the JavaScript at the end
of the webform i.e. just before the closing
tag.

Also, there's no need to include the tags explicitly,
as ASP.NET will do this for you, e.g.

Dim Script As New StringBuilder()
Script.Append("var hashValue='#BottomOfPage';")
Script.Append("if(location.hash!=hashValue)")
Script.Append("location.hash=hashValue;")

If (Not ClientScript.IsClientScriptBlockRegistered("BookMarkScript") ) Then
ClientScript.RegisterStartUpScript (GetType(), "BookMarkScript",
Script.ToString(), True)
End If


--
Mark Rae
ASP.NET MVP
http://www.markrae.net

Re: move back to bottom of page after postback

am 15.04.2008 15:48:30 von Keith G Hicks

Thanks Mark. That did it. I also had to removee the # from the name="#BottomOfPage">


"Mark Rae [MVP]" wrote in message
news:#EvhPqvnIHA.3512@TK2MSFTNGP03.phx.gbl...
> "Keith G Hicks" wrote in message
> news:%23GQGbrqnIHA.4208@TK2MSFTNGP02.phx.gbl...
>
> > Can anyone tell me what I'm doing wrong?
>
> You're using RegisterClientScriptBlock.
>
> This places the JavaScript at the beginning of the webform i.e. just after
> the opening

tag. This means that (almost certainly) the rest of the
> form including the anchor tag hasn't been created when the script tries to
> run.
>
> Use RegisterStartUpScript instead, as this places the JavaScript at the
end
> of the webform i.e. just before the closing
tag.
>
> Also, there's no need to include the tags
explicitly,
> as ASP.NET will do this for you, e.g.
>
> Dim Script As New StringBuilder()
> Script.Append("var hashValue='#BottomOfPage';")
> Script.Append("if(location.hash!=hashValue)")
> Script.Append("location.hash=hashValue;")
>
> If (Not ClientScript.IsClientScriptBlockRegistered("BookMarkScript") ) Then
> ClientScript.RegisterStartUpScript (GetType(), "BookMarkScript",
> Script.ToString(), True)
> End If
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net
>