Avatar billede c-sharp Nybegynder
13. september 2006 - 09:29 Der er 12 kommentarer og
1 løsning

Hjælp til "avanceret" tilbage knap

Jeg har en lavet en lille shop løsning hvor jeg lister nogle produkter i et gridView, der er sat sidestyrring på det gridview. På siden er der også en oversigt over hvor meget brugeren har købt. Hvis man trykker på et af produkterne i gridview'et kommer man til en bestilling side, det skal så være muligt at gå tilbage fra denne bestillingside til gridview'et.

Jeg har lavet det med history.go(-1) problemet er at så finder den en cachet side frem, og der er bestillingsoversigten ikke opdateret.

Hvordan laver jeg en tilbage knap som får opdateret bestillingslisten og ramme tilbage til samme side i gridView'et som brugeren kom fra?
Avatar billede snepnet Nybegynder
13. september 2006 - 12:03 #1
Du kan pakke det ind i din egen knaptype sådan her:

public class ClientSideBackButton : Button
{
    protected int PostBacks = 0;

    protected override void OnInit(EventArgs e)
    {
        Page.RegisterRequiresControlState(this);
        base.OnInit(e);
    }

    protected override void LoadControlState(object savedState)
    {
        object[] state = savedState as object[];
        base.LoadControlState(state[0]);
        PostBacks = (int)state[1];
    }

    protected override object SaveControlState()
    {
        object[] state = new object[2];
        state[0] = base.SaveControlState();
        state[1] = ++PostBacks;
        return state;
    }

    protected override void AddAttributesToRender(HtmlTextWriter writer)
    {
        writer.AddAttribute(HtmlTextWriterAttribute.Onclick, String.Format("history.go(-{0});return false;", PostBacks));
        base.AddAttributesToRender(writer);
    }
}

Mvh
Avatar billede c-sharp Nybegynder
13. september 2006 - 12:23 #2
Hej snepnet tak for din kommentar!

Du bruger vel stadig "history.go.." og det vil jo så sige at siden du går tilbage til ikke bliver reloadet så jeg får opdateret bestillignsoversigten?
Avatar billede snepnet Nybegynder
13. september 2006 - 12:34 #3
Den opdaterer ikke siden - men det skulle du kunne flette ind hvis du vil.... I javascript kan du lave en window.location.reload() der kan fikse det.
Mvh
Avatar billede c-sharp Nybegynder
13. september 2006 - 13:01 #4
Hvor vil du proppe det java-script ind?
Avatar billede snepnet Nybegynder
13. september 2006 - 15:20 #5
Har du prøvet at lægge det ind efter history.go()?
Mvh
Avatar billede c-sharp Nybegynder
13. september 2006 - 15:37 #6
yep, men så reloader den bare siden den står på
Avatar billede snepnet Nybegynder
13. september 2006 - 21:02 #7
Man kunne jo have været heldig at den fiksede .go før den startede på det næste ;o)
Kan du ikke bare slå browsercaching fra på siden?
Og alternativt.... Lav et redirect hvis du alligevel ønsker at opdatere siden (jeg mener.... der er jo ikke så meget fidus ved at du hopper tilbage i listen clientside - hvis du alligevel skal opdatere mod serveren).
Mvh
Avatar billede c-sharp Nybegynder
13. september 2006 - 21:43 #8
Nej det kan du igrunden have ret i :-/ kan jeg så på en nem måde loade en bestemt side i gridviewet ved et redirect?
Avatar billede karsten_larsen Praktikant
14. september 2006 - 08:25 #9
Hvad med at bruge arraylist i en session og styre det hele derfra, dvs. hvor brugeren er, antal købte elementer etc. Man kan vel også lave en seperat masterpage til bestillingssiden som slår cache fra, som snepnet skriver.

:-) karsten_larsen
Avatar billede snepnet Nybegynder
14. september 2006 - 08:34 #10
Jeg ved ikke om man kan sige der er en nem møde at gøre det på, men det er ikke ret meget kode der skal til.
Du skal kunne ramme siden med en url der beskriver listens tilstand (som sortdirection og pageindex), du må så skrive de par linier kode der skal til for at listen arter sig efter det.
Mvh
Avatar billede karsten_larsen Praktikant
14. september 2006 - 09:05 #11
okay - det kan jeg godt se.
Avatar billede c-sharp Nybegynder
19. september 2006 - 12:53 #12
Super, jeg har fået det til at spille :-)

snepnet smid et svar så får du point igen igen igen :-)
Avatar billede snepnet Nybegynder
19. september 2006 - 15:05 #13
Kommer her :o)
Mvh
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