Gå 2 sider tilbage og husk scroll + GridView sidenr.
Hej.jeg har bøvlet med det her i snart ½ år.
Problemet er sådan set uhyre simpel, men kan ikke finde en løsning.
Jeg har én side(page1.aspx) med en Gridview, som kan være på mange sider. Hvis man trykker på et emne i GridView'en føres man hen til en anden side(page2.aspx) som indeholder nogle button's der ændre udseenet af siden(skifter billed, øger counter osv.) og en back-button.
Den back-button skal huske sidetal, og position på page1.aspx og føre brugeren tilbage dertil.
PT. Gør jeg det at jeg gemmer hvor mange sider browseren skal gå tilbage i en session-key, og så sætter tallet ind i metoden nedenfor(x):
BTNtilbage.Attributes.Add("onclick", "history.back(x); return false");
Men ligemeget hvad jeg prøver vil den kun gå én side tilbage(til page2.aspx, hvis man har trykkede på en knap), har så prøvet at ændre sidens cache-egenskaber i Page_Load så det ikke er muligt at gå tilbage på page2.aspx:
Response.Cache.SetExpires(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Men det ændrede ikke noget.
Så har jeg overvejet at tilføje sidenr og scroll i en session-key og laver en Response.Redirect(), men syndes bare det virker absurd hvis der ikke er en nogenlunde simpel løsning på problemet.
Sidenr er simpel, og havde regnet med at benytte noget ligende dette til at finde og sætte scroll på siden:
<HTML>
<body onload="java script:ScrollIt()" onscroll="java script:setcoords()">
<form id="Form1" method="post" runat="server">
...Page Content...
<input type=hidden id=PageX name=PageX value=0 runat=server>
<input type=hidden id=PageY name=PageY value=0 runat=server>
</form>
<script language=javascript>
function ScrollIt(){
window.scrollTo(document.Form1.PageX.value, document.Form1.PageY.value);
}
function setcoords(){
var myPageX;
var myPageY;
if (document.all){
myPageX = document.body.scrollLeft;
myPageY = document.body.scrollTop;
}
else{
myPageX = window.pageXOffset;
myPageY = window.pageYOffset;
}
document.Form1.PageX.value = myPageX;
document.Form1.PageY.value = myPageY;
}
</script>
</body>
</HTML>
Er der nogen som kan komme med et råd til problemet ?
På forhånd tak.
Scorp-D