Avatar billede Simon Praktikant
04. september 2006 - 21:13 Der er 10 kommentarer og
1 løsning

finde ud af hvad der aktiverer en reload

Jeg har en asp.net side som bruger AJAX, Masterpage, samt UserControls.

Mit problem er at når jeg på én af mine undersider trykker på controls, reloades siden. Dette gælder også selvom jeg indsætter en button, hvortil der ikke er knyttet nogen event.

Findes der en måde at finde ud af hvor et reload af siden stammer fra? Er det en http-post som man kan fange, og som beskriver hvilken control som har aktiveret den?
Avatar billede snepnet Nybegynder
04. september 2006 - 21:32 #1
En knap renderes pr. default som en submit button.... Det har ingen betydning om du tilknytter en eventhandler eller ej.
Handleren gør bare at du kan eksekvere kode i forbindelse med hændelsen.
Mvh
Avatar billede driis Nybegynder
04. september 2006 - 21:47 #2
Du kan finde ud af, hvilken control der har aktiveret postback ved at se på form-feltet __EVENTTARGET.
Avatar billede Simon Praktikant
04. september 2006 - 21:52 #3
Jeg forsøger at læse denne med
Request.Form["__EVENTTARGET"]
men strengen er blot tom.
ifølge siden her:
http://www.velocityreviews.com/forums/t98662-requestformquoteventtargetquot-in-c.html
kommer der kun noget hvis det stammer fra en java control
Avatar billede Simon Praktikant
04. september 2006 - 21:52 #4
Men egentlig svarer du jo på mit spørgsmål :-)
Avatar billede Simon Praktikant
04. september 2006 - 21:56 #5
til snepnet:
jeg kan godt se hvad du mener. I mit konkrete tilfælde kommer der en reload af siden når når jeg trykker på en ImageButton, som er placeret i et GridView, og også når denne ImageButton ikke er placeret i gridview.

Ifølge siden her (http://www.w3schools.com/aspnet/control_imagebutton.asp) skulle man kunne slå dette fra ved at sætte CausesValidation = "false". Men siden bliver stadg reloaded når man trykker på ImageButton. Min kode for ImageButton er:

<asp:ImageButton CausesValidation=false runat="Server" ImageUrl = "images/b_edit.png" ID="RedigerButton"></asp:ImageButton>
Avatar billede Simon Praktikant
04. september 2006 - 21:57 #6
Jeg skrev i starten af mit indlæg at siden blev reloaded når jeg trykkede på en control, men det gør den ikke ved alle controls. Trykker jeg på et punkt i en DropDownList reloades siden ikke.
Avatar billede Simon Praktikant
04. september 2006 - 22:19 #7
Jeg fandt lige løsningen:
I den java-script-kode som man angiver i OnClientClick skal man huske at returnere false, for ikke at få en postback til serveren.
Retter man således koden til så der står følgende, reloades siden ikke.

<asp:ImageButton CausesValidation=false runat="Server" ImageUrl = "images/b_edit.png" ID="RedigerButton" OnClientClick=" { return false; };"></asp:ImageButton>
Avatar billede thrytter Nybegynder
04. september 2006 - 22:20 #8
Siden vil reloade = lave et postback hvis du sætter AutoPostBack="true" på din DropDownList.

CausesValidation="false" på en ImageButton betyder ikke, at du slår postback/reload fra ved tryk på knappen. Betyder bare at der skal ske PostBack/reload selvom der er sat validering på en eller flere kontroller, og at disse valideringer fejler/udløses.
Avatar billede Simon Praktikant
04. september 2006 - 22:21 #9
Tak til jer begge to. Point får driis for det præcise svar på spørgsmålet om hvordan man finder ud af hvem der har startet en reload.

smid svar og point er dine.
Avatar billede Simon Praktikant
04. september 2006 - 22:22 #10
Det er da utroligt så hurtigt og effektivt det her forum er :-)
Avatar billede driis Nybegynder
04. september 2006 - 22:52 #11
Svar kommer her.
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