Avatar billede kennedk Nybegynder
06. november 2007 - 08:48 Der er 12 kommentarer

Køre javascript funktion

Hej Eksperter

Jeg sidder og har en side med et par update panels, og for at opdatere min ene updatepanel kan jeg bruge denne her javascript kode UpdateMenu()

men hvordan køres den fra codebehind når jeg trykker på en knap?

Jeg har prøvet at udskrive "<script>UpdateMenu()</script>" i en literal, men det virker ikke, det er som om at koden ikke køres

Er der nogen der ved hvordan det skal løses?
Avatar billede ladyhawke Novice
06. november 2007 - 08:51 #1
du kan fra code behind tilføje funktionen som onclick, men det kan du vel også gøre i html'en, det afhænger af om den funktion (javascript) afhænger af andet i code behind?
Avatar billede kennedk Nybegynder
06. november 2007 - 09:23 #2
Det skal ske efter at der er udført en handling i min codebehind.
Der skal nemlig opdateres noget i databasen.
Avatar billede kalp Novice
06. november 2007 - 09:28 #3
når du siger update panels tænker jeg AJAX.

men det du kan f.eks skrive dette i dit body tag

<body runat="server" id="Body" >

og på dit knap tryk i codebehind.

Body.Attributes.Add("onload","<script>UpdateMenu()</script>");
Avatar billede kennedk Nybegynder
06. november 2007 - 09:35 #4
så for at gøre det lidt mere besværligt, så koden der laves er i et userControl
Hvordan gør jeg det så fra usercontrollen?
Avatar billede kalp Novice
06. november 2007 - 09:45 #5
prøv med.

this.RegisterStartupScript("runscript", "<script>UpdateMenu();</script>");
Avatar billede kennedk Nybegynder
06. november 2007 - 09:49 #6
Den skriver

Error    17    'WebUserControls_RedigerSide' indeholder ikke en definition af 'RegisterStartupScript'    C:\Documents and Settings\kekri108\Skrivebord\.NET\cms\cms1\cms\WebUserControls\RedigerSide.ascx.cs    37    14    C:\...\cms1\
Avatar billede kalp Novice
06. november 2007 - 10:01 #7
okay så kan man ikke gøre det fra din usercontrol på den måde...

hvad står der i din UpdateMenu()

?
Avatar billede kennedk Nybegynder
06. november 2007 - 10:14 #8
Det er et fiktivt navn jeg gjorde, bare for at gøre det nemmere at forstå, men det er denne kode der skal køres :)

function postBackTreeMenu(strTreeMenu) {
            var hiddenField = $get("<%=HiddenFieldToUpdateTreeMenu.ClientID %>");
            if (hiddenField) {
                hiddenField.value = strTreeMenu;
                __doPostBack("<%=HiddenFieldToUpdateTreeMenu.ClientID %>",'');
            }
        }
Avatar billede kalp Novice
06. november 2007 - 10:38 #9
okay men hvis du følger din literal strategi fra tidligere kan du oprette et hiddenfield..

og så kan du bruge min første kommentar men udbyg dit eget javascript til at tjekke på om hiddenfield værdien er null eller ej.. hvis den er null så skal den ikke køre dit javascript.
Avatar billede kennedk Nybegynder
06. november 2007 - 14:33 #10
Det forstod jeg ikke ret meget af :/
Avatar billede januskh Nybegynder
07. november 2007 - 17:31 #11
Som kalp siger:
this.RegisterStartupScript("runscript", "<script>UpdateMenu();</script>");

Måske kører du .NETFW 2.0?
ClientScript.RegisterStartUpScript(Page.GetType, "runscript", "<script>UpdateMenu();</script>")
Avatar billede kalp Novice
07. november 2007 - 17:43 #12
man kan ikke fra en usercontrol:)
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