Avatar billede scorp-d Nybegynder
07. juli 2009 - 14:38 Der er 1 kommentar

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
Avatar billede scorp-d Nybegynder
08. juli 2009 - 11:12 #1
Hvis jeg undlod at gøre alt hvad jeg skrev ovenover og blot skrev følgende på page2.aspx virker det hele perfekt i IE:

Page.SmartNavigation = true;


Men den metode skulle være udgået og erstattede med Page.SetFocus og Page.MaintainScrollPositionOnPostBack, men de har ikke noget med mit problem at gøre !


Det virker som sædvanligt ikke i Firefox(er snart ved at være træt af Mozilla's alt for korrekte browser), så hvis der er nogle der kan komme med et hint ville det være til stor hjælp!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester