Avatar billede bombur Nybegynder
22. oktober 2006 - 13:24 Der er 3 kommentarer

C# Metodekald til anden aspx side

Hej

Hvordan kalder jeg en metode fra side1.aspx på side2.aspx?
Det skal ske fra en knap jeg opretter dynamisk.

Jeg kan komme så langt som til at sende mig videre til side2, men jeg kan ikke lige se hvordan jeg skal få den til at kalde en bestemt metode.
Min kode ser sådan ud:

Button addButton = new Button( creatureWrapper );
addButton.PostBackUrl = "EnounterEvents.aspx";
addButton.Click += new EventHandler( addButton_Click );

Eventen bliver bare ikke kaldt, hvordan gør man så?

På forhånd tak
Rune
Avatar billede snepnet Nybegynder
22. oktober 2006 - 20:49 #1
Hvorfor vil du kalde en metode på en anden side ... ?
Du kan lave en klasse der ligger for sig, som kan håndtere det, eller kalde siden med en querystring du kan udlede handlingen af.
Ellers kan du inspicere indholdet af første side fra den side du poster til vha. PreviousPage, og baseret på indholdet gøre det der skal gøres.
Prøv evt. at skriv hvad det er du gerne vil opnå - så skal du få et bud på en løsning.
Mvh
Avatar billede bombur Nybegynder
23. oktober 2006 - 07:54 #2
Ja, det kunne godt være jeg skulle det. Problemet er at jeg skal lave et postback til side et og ændre i datakernen på nogle objekter (Det er metoden der skal gøre det) og DEREFTER vise siden igen.
Det viser sig jo at man ikke kan gøre dette da serveren vælger at loade sidens indhold først, og SÅ kalde eventuelle events. På den måde har den tegnet siden ud fra mine objekter inden objekterne er blevet ændret. Ikke særlig smart lavet. Men der må jo være en løsning. Derfor tænkte jeg at man kunne sende metodekaldet til en anden side først, som så sørgede for at ændre dataene. Men det virker som en bøvlet løsning.
Avatar billede snepnet Nybegynder
23. oktober 2006 - 10:49 #3
Den anbefalede model for den slags er:

// i page_load
if(!IsPostBack)
{
  DataBindPage();
}

void DataBindPage()
{
  // hvad du nu gør for at opbygge siden udfra dine objekter - f.eks.
  someGridView.DataSource = someObject;
  someGridView.DataBind();
}

// for alle eventhandlers hvor data ændres - afslut med kald til:
DataBindPage();

Men hvis du benytter dig af en ObjectDataSource - så hjælper den en hel del med den slags.

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