Avatar billede nielsjm Nybegynder
22. marts 2005 - 12:55 Der er 5 kommentarer og
2 løsninger

hjælp

har lavet et projekt hvor jeg i kodebehindfilen generer en htmltabel med rækker og celler der indeholder tekst, knapper og biller.

denne tilføjer jeg siden i Page_load


    private void Page_Load(object sender, System.EventArgs e)
    {
    grund = new basisCT();
    grundtabel=grund.baggrundsbilled(1);
    }
mit problem er at når jeg klikker på knapper så vil page_load blive eksekveret før mine eventhandlere til knappen, så de tekstfelter jeg har på siden bliver sat til standard og indtastninger går tabt!

HJÆLP

niels
Avatar billede thanse21 Nybegynder
22. marts 2005 - 13:52 #1
Prøv at teste om siden er postback:


private void Page_Load(object sender, System.EventArgs e)
    {
      if(!Page.IsPostBack())
      {
        grund = new basisCT();
        grundtabel=grund.baggrundsbilled(1);
      }
  }

så bliver din tabel kun lavet hvis det er første gang du kommer ind på siden
Avatar billede thanse21 Nybegynder
22. marts 2005 - 13:54 #2
tillæg til ovenstående:

grunden til at dine knapper ikke "virker" er at du lver tabellen hver gang siden loader og det gør dden jo når du laver et postback, ved klik på en knap...så derfor test om det er postback

Håber det er forståeligt
Avatar billede snepnet Nybegynder
22. marts 2005 - 14:04 #3
page_load bliver altid kaldt før dine eventhandlere.... det er en framework-ting.

når brugeren sender siden til serveren (postback) - genskabes hele kontroltræet, og der udledes hvad der er sket, hvorefter respektive eventhandlers mv. kaldes.

hvis du konstruerer siden på samme måde hver gang, vil det samme blive genskabt hver gang - og der vil ikke kunne udledes ændringer (da de jo så heller ikke er der).

såhhh.... hvis du sætter et tekstfelt ind sådan her :

TextBox tb = new TextBox();
tb.Text = "HEJ";
someContainer.Controls(tb);

vil den altid se sådan ud efter page_load, men hvis du gør sådan her :

TextBox tb = new TextBox();
someContainer.Controls(tb);

if(!IsPostBack)
{
  tb.Text = someResource.tb_InitialString;
}

så vil du kun sætte din værdi ind første gang brugeren ser siden....

(et typisk databindingsscenarie vil også være bygget op på den måde).

er det helt sort, eller er du lidt med på den ?

mvh
Avatar billede nielsjm Nybegynder
22. marts 2005 - 15:02 #4
lig et svar begge to... det er famne de beste svar jeg har fået herinde!!!!!!!!!

pænt tak
Avatar billede snepnet Nybegynder
22. marts 2005 - 17:16 #5
det var så lidt :o)
mvh
Avatar billede thanse21 Nybegynder
23. marts 2005 - 10:43 #6
svar
Avatar billede thanse21 Nybegynder
23. marts 2005 - 10:44 #7
nej det her er et svar  :-)
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