Avatar billede netro Nybegynder
23. januar 2007 - 04:12 Der er 12 kommentarer og
2 løsninger

Javascript i usercontrol

To spørgsmål. Hvordan får jeg tilføjet en onLoad til masterpagens body fra min usercontrol (uden at skulle bruge this.Parent.Parent.Parent.Parent.FindControl)?

MasterPage -> ASPX -> ASCX

Og hvordan kan jeg inkludere js-filer (ClientScript.RegisterClientScriptInclude) fra min usercontrol?
Avatar billede dr_chaos Nybegynder
23. januar 2007 - 07:58 #1
Der findes desværre ikke andre måder end:
this.Parent.Parent.Parent.Parent.FindControl

På dine almindelige sider vil du kunne finde din master page som en class, men den er ikke tilgængelig i usercontrols.

Så skal du lave et onload event på din usercontrol er når det forekommer på en side så  kalder du en metode på masterpagen.
Avatar billede netro Nybegynder
25. januar 2007 - 03:20 #2
Ok, kan der egentlig ikke tilføjes flere gange til onload-attributet? Hvis jeg gør følgende i både en usercontrol og på modersiden:

((HtmlControl)this.Page.Master.FindControl("Body")).Attributes.Add("onload", "alert('xxx')");

- så er det kun usercontrollens tilføjelse, der kommer med i body-tagget.
Avatar billede dr_chaos Nybegynder
25. januar 2007 - 07:36 #3
nej der kan kun være en onload attribut.
Så skal du lave en form for function eller class som returnerer det javascript som skal i onload.
Avatar billede netro Nybegynder
25. januar 2007 - 12:03 #4
Det jeg mente var, om man ikke kan tilføje til onload flere gange. Fx.

1) onload="alert('xxx');"
2) onload="alert('xxx'); alert('yyy');"
Avatar billede dr_chaos Nybegynder
25. januar 2007 - 12:16 #5
nej der kan kun være en onload attribut.
men det jeg mente var at du kunne lave en funktion som returnerede den onload der skal bruges.
onload=dinfuntion;
Avatar billede netro Nybegynder
25. januar 2007 - 12:54 #6
Så har jeg måske misforstået dig, men kan du uddybe din idé med den funktion lidt?
Avatar billede snepnet Nybegynder
25. januar 2007 - 16:04 #7
Du kan godt sætte flere kald ind i din onload - bare adskild dem som du selv har vist (med ;).
Mvh
Avatar billede netro Nybegynder
25. januar 2007 - 22:51 #8
Jo, men hvad hvis man ikke ønsker at indsætte disse kald på een gang. Det er der, det går galt.
Avatar billede roenving Novice
26. januar 2007 - 04:40 #9
-- så må du checke, om der findes en funktion i forvejen og så udføre den først !-)
Avatar billede snepnet Nybegynder
26. januar 2007 - 09:49 #10
Du kan jo bare tilføje:
someBody.Attributes["onload"] += "alert('yyy');";
Mvh
Avatar billede netro Nybegynder
27. januar 2007 - 00:24 #11
Ja, det var egentlig bare det, jeg var ude efter. Mange tak.
Avatar billede snepnet Nybegynder
27. januar 2007 - 11:40 #12
Det var så lidt ... Jeg lægger et svar så (og deler gerne med andre) :o)
Mvh
Avatar billede netro Nybegynder
27. januar 2007 - 13:50 #13
Yes, læg bare et svar også dr_chaos.
Avatar billede dr_chaos Nybegynder
27. januar 2007 - 13:52 #14
ok :)
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