View Full Version : [ASP.NET] chiamare funzione javascript
DesmoColo
15-05-2007, 16:13
Salve. Devo impelemntare il seguente codice:
<Asp:Button id ="button" runat="server" onclick= "funzione">
public void funzione(){
boolean b;
if (b == true) esegui javascript1;
else esegui javascript2
}
Il problema è: faccio a far chiamare il codice javascript a seconda del valore b?
^TiGeRShArK^
15-05-2007, 16:40
spè...
il javascript deve essere esguito lato client o lato server?
e inoltre il linguaggio che hai usato nel tuo codice ASP.net che linguaggio è? C#?
Il problema è: faccio a far chiamare il codice javascript a seconda del valore b?Non conosco ASP.NET comunque in generale non è possibile da un linguaggio server-side (PHP, JSP ecc...) richiamare una funzione Javascript (client-side), proprio perché l'utilizzo dei due linguaggi viene fatto in modo diverso e in tempi/posti diversi.
Prima viene eseguito il codice server-side sul server web, poi la pagina HTML generata viene inviata al browser e poi il browser esegue l'eventuale codice Javascript.
^TiGeRShArK^
15-05-2007, 16:52
Non conosco ASP.NET comunque in generale non è possibile da un linguaggio server-side (PHP, JSP ecc...) richiamare una funzione Javascript (client-side), proprio perché l'utilizzo dei due linguaggi viene fatto in modo diverso e in tempi/posti diversi.
Prima viene eseguito il codice server-side sul server web, poi la pagina HTML generata viene inviata al browser e poi il browser esegue l'eventuale codice Javascript.
il problema è che in teoria ASP.NET può anche usare funzioni javascript server-side :p
per questo gli ho chiesto di specificare meglio quello che vuole fare :D
simoneart
15-05-2007, 17:16
Io di solito risolvo utilizzando una variabile Public nel mio codebehind
e poi passando quella variabile come parametro alla funzione javascript tipo:
public void funzione(b){
if (b == true) esegui javascript1;
else esegui javascript2
}
<body onload="return funzione(<%= miavar %>)">
Server controls:
<asp:TextBox ID="textbox" runat="server"></asp:TextBox>
<asp:Button ID="button" runat="server" text="cliccami tutto" OnClick="GestisciClick"></asp:Button>
Code behind:
public void function GestisciClick(object sender, EventArgs e)
{
this.RegisterStartupScript("NomeDelloScriptCheVuoiRegistrare","<script language=\"javascript\">alert(\"" + this.textbox.Text + "\");</script>")
}
mamma che schifo!
...perchè si vedono così striminziti i box del codice?!
vabbè, amen!
'iao
DesmoColo
15-05-2007, 19:38
Vi riporto delle info più precise:
Utilizzo ASP.NET 2.0 e linguaggio c#;
La funzione javascript è lato client.
IL codice di cui ho bisogno deve essere messo in una pagina master chiamata MasterPage.
Nei dettagli, nella MasterPage.master.aspx ho un div chiamato divLogin vi sono due textbox in cui si inseirscono nome utente e password.
UNa volta che l'utente ha inseirto i due campi e cliccato su accedi, deve essere invocata una funzione LoginAuthenticate che prende come parametro user e password.
Se il login ha successo, voglio che il div in cui ho le textbox venga settato nel foglio di stile Display = none. Questo viene fatto invocando una funzione javascript che setta il valore del div.
IL mio problema nasce dall'esigenza di scambiare dati fra javascript-funzione c#.
allora, o modifichi un'attimino il mio codice e vai alla grande o -e sarebbe meglio vista la filosofia che sta alla base di asp.net- puoi attribuire al div l'attributo runat="server" oppure sostituirlo con un asp:Panel e nasconderlo lato server!
DesmoColo
16-05-2007, 11:11
allora, o modifichi un'attimino il mio codice e vai alla grande o -e sarebbe meglio vista la filosofia che sta alla base di asp.net- puoi attribuire al div l'attributo runat="server" oppure sostituirlo con un asp:Panel e nasconderlo lato server!
Vittoria!!! Mettendo runat="server" al div funziona tutto!
grazie!
è bastato mettere runat="server"? :confused:
e non hai cambiato niente del codice che avevi postato? :confused:
:mbe:
DesmoColo
16-05-2007, 21:04
Allora:
Ho messo il form dentro un panel(che si trova nel master). Quando l'autenticazione ha successo, il valore visible del panel viene settato a false.
Il problema che adesso devo risolvere è che se mi sposto su una pagina che utilizza lo stesso master attraverso un link, il form riappare...
in sessione (o in cache o dove vuoi) non tieni informazioni riguardanti lo stato dell'utente?
...potresti usare quelle per decidere se è il caso di nascondere o meno il form!
DesmoColo
17-05-2007, 11:50
Provo a implementare un cookie, poi ti faccio sapere.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.