Avatar billede odsgaard Praktikant
03. oktober 2009 - 16:23 Der er 4 kommentarer og
1 løsning

(NEWBIE) Tælle en variabel op, når der trykkes på knap (asp.net)

hej

Jeg er ved at lave en side, hvor man skal kunne vise et sidenummer. Sidenummeret skal tælles hhv. op og ned når der trykkes på frem eller tilbage. Jeg har problemer med at få det til at virke. Håber at der er en af jer, der kan fortælle, hvad jeg gør galt :)

Hilsen
Brian


Min kode ser sådan ud:

int page;
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        this.Session["page"] = 1;
    }
    page = (int)this.Session["page"];
    Label1.Text = "" + page;
}
protected void Button1_Click(object sender, EventArgs e)
{
    this.Session["page"] = page - 1;
}
protected void Button2_Click(object sender, EventArgs e)
{
    this.Session["page"] = page + 1;
}
Avatar billede Syska Mester
03. oktober 2009 - 16:30 #1
Du tildeler jo hele tiden 1 til din session.

og så udskriver du 1 til din Label1

og så skriver du page -1 eller page +1

Så den gør jo hvad den skal ... det er din logik der står fejl.

    if (!IsPostBack)
    {
    page = (int)this.Session["page"];
    Label1.Text = "" + page;
    }
else
{
        this.Session["page"] = 1;
}
Avatar billede Syska Mester
03. oktober 2009 - 16:33 #2
arghh ....

if(IsPostBack)
{
// hent gammel varialble fra session
}
else
{
// Getrequest ... assign 1 til session
}

// udskriv kan jo ikke laves før du har talt op ... så lav en method til det
Avatar billede odsgaard Praktikant
03. oktober 2009 - 18:49 #3
Tak for hjælpen -> efter nogle forsøg, så lykkedes det at få det til at virke efter hensigten :)

Smider du et svar ?

/Brian
Avatar billede Syska Mester
03. oktober 2009 - 19:55 #4
svar.

Hvordan kom løsning så til at se ud ... ?

Btw. Kør sitet i debug mode, så ville du nok også have opdaget hvad der præcis sker.
Avatar billede odsgaard Praktikant
03. oktober 2009 - 21:17 #5
Efter at have rodet lidt med det kom jeg frem til nedenstående

/Brian


int page;
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        page = 1;
        Label1.Text = "" + page;
        this.ViewState["page"] = page;
        Button1.Enabled = false;
        }
        else
        {
            page = (int)this.ViewState["page"];
        }
    }

protected void Button1_Click(object sender, EventArgs e)
{
    increasePageCount(-1);
}

protected void Button2_Click(object sender, EventArgs e)
{
  increasePageCount(1);
}
void increasePageCount(int n)
{
    this.page += n;
    this.ViewState["page"] = page;
    Label1.Text = "" + page;
    setImage();
    setRadioButtonText();
    if (page == 1) Button1.Enabled = false; else Button1.Enabled = true;
    if (page == 5) Button2.Enabled = false; else Button2.Enabled = true;
}
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