Men jeg vil gerne undgå at have btnUndo erklæret på "side1.aspx" og så have en tilsvarende knap på "side2.aspx" som så udfører den event, som btnUndo ellers udfører.
hvis du bruger code behind filer kan du referer til side1.aspx med side1 s = new side1.aspx() og hvis din knap på side1.aspx er public i stedet for protected så kan du tilføje en eventhandler: s.btnUndo.click +=new EventHandler(btnUndo_click);
og så kan du udfører hvad du vil i private void btnUndo_click(object sender, System.EventArgs e) {}
Det kunne godt være en mulighed. Jeg synes bare de er besværlige at programmere, og når jeg ikke skal genbruge "side.aspx" funktionalitet, så er gevinsten for lille. Men vil jeg kunne kalde en event-handler i user control'en?
Det du kan gøre er at når du trykker på knappen så gemmer du de relevante værdier i en session. Når du så udfører postback på side1 så kan du hente værdierne i sessionen og parse dem til side1.aspx
ok. Så kan jeg vist lige så anvende querystring. Men det ville være helt kanon, hvis jeg kunne få kaldt den server-side event-handler. Men jeg får mere og mere svært ved at se, hvordan det kan lade sig gøre. Måske laver jeg det ved at have knapperne på begge sider og så bare skjule dem på "side1.aspx"...
challengers>> det er bare et spørgmål om at poste de rigtige data til siden. Når man trykker på f.eks. en knap på en side bliver den også bare postet til sig selv med nogle data i post. Det er så disse data du skal gengive så at siden tror at der er blevet trykke på f.eks. en knap.
Det er sådan set også det jeg gør nu ved at kalde __dopostback metoden med den knap der er trykket på som parameter. Men det rkæver som sagt, at den knap er erklæret på den side, hvor event-handleren er. Det ville være smart, hvis man i stedet for at sende knappen med som parameter kunne angive den event-handler, der skulle tage sig af kaldet. Men det kan man ikke, så vidt jeg lige kan se.
challengers>> det nytter ikke at kalde __dopostback på side1 når eventhandleren er på side2, for som du selv er inde på, så er eventhandleren på side2 og ikke side1.
Men det er sådan set heller ikke det jeg snakker om i 01/06-2005 16:15:22.
Det jeg kommer ind på er at du skal snyde side2 til at tro at der blev lavet et postback på den. Det kan du gøre med f.eks. WebRequest-klassen på side1, hvor du opretter en WebRequest, sætter de nøvdvendige POST-variabler og til sidst requester side2. Så har du nemlig snydt den til at tro at der er en browser i Langbortistan der har trykket på en knap, og den udfører den relevante eventhandler.
Det er dog noget FUSK (!!!). Hvis du har brug for en funktion der ikke skal være bundet til en enkelt side bør du lægge den i en Utility-klasse, så denne funktion kan kaldes allesteder fra.
Synes godt om
Ny brugerNybegynder
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.