IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Introduction
auteurs : neo.51, bodbod
Comme nous l'avons souvent vu sur nos forums, le problème le plus récurent en ASP.NET est d'intervenir sur le navigateur du client. En effet, le code VB.NET ou C# que vous utilisez derrière vos pages ASP.NET s'éxécute coté serveur, et on se retrouve "bloqué" quand on veut intervenir sur le navigateur du client pour : rafraichir une frame, ouvrir une popup, etc ... Une solution simple existe, il suffit d'utiliser :

response.write(...) ;
response.write() permet d'écrire du html sur la pages aspx envoyé au client. Il vous suffit donc d'envoyer du javascript avec response.write et vous pouvez, en code behind exécuter n'importe quelle fonction javacript sur le navigateur web du visiteur.


Comment ouvrir une popup type "alert" en code behind ?
auteurs : neo.51, bodbod
var message : String ; Response.Write('<body><script>alert("' + message + '");</script></body>') ;

Comment ouvrir une popup html en code-behind ?
auteurs : neo.51, bodbod
var url : String ; // url de la popup html largeur : Integer ; // largeur de la popup hauteur : Integer ; // hauteur de la popup x : Integer ; // position en x de la popup y : Integer ; // position en y de la popup //la position en x,y se fait à partir du coin supérieur gauche de la fenêtre Response.Write('<body><script>' + 'window.open("' + url + '","_blank",' + '"width=' + largeur.ToString + ',height=' + hauteur.ToString + ',' + 'top=' + x.ToString + ',left=' + y.ToString + '");' + '</script></body>') ;

Comment afficher une page dans une nouvelle fenetre de l'explorateur en code-behind ?
auteurs : neo.51, bodbod
Voici comment afficher une page dans une nouvelle fenetre en code-behind :

Response.Write('<body><script>' + 'window.open("fichier.aspx?param1=toto&param2=titi", "nomfenetre",' + '"toolbar=yes,status=yes,directories=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes");' + '</script></body>' ) ;

Comment charger un frame en code-behind ?
auteurs : neo.51, bodbod
var url : String ; // l'url de la page à charger dans la frame target : String ; // nom de la frame à charger Response.Write('<body><script>window.open("' + url + ' ","' + target + '");</script></body>') ;

Comment positionner le focus sur un Webcontrol ?
auteurs : nannous, neo.51, bodbod
Voici une fonction qui vous permettra de mettre le focus sur un Webcontrol qui se trouve dans la page :

function setFocus( champs : System.Web.UI.WebControls.WebControl ) ; var s : String ; begin // Champ est le webcontrol sur lequel on veut mettre le focus s := '<script language= "javascript">document.getElementById(''' + champs.ClientID + ''').focus()</script>' ; Page.RegisterStartupScript('focus', s ) ; end ;

Comment faire une popup de confirmation et récupérer le choix de l'utilisateur en code-behind ?
auteurs : neo.51, cyrillus76, bodbod
Nous allons voir comment afficher une boite de dialogue javascript type confirm (un texte avec un choix oui/non) et comment récupérer en code-behind si l'utilisateur a confirmé en cliquant sur oui. dans votre page aspx :

<script language="javascript"> function confirmSubmit() { var msg = "Etes vous sûr de vouloir enregistrer vos données?"; if (confirm(msg)) { document.formulaire.hide.value="oui"; } } </script> <form id="formulaire" runat="server"> <asp:button id="butsubmit" text="GO" runat="server" /> <input type="hidden" id="hide" runat="server"> </form>
dans votre code-behind

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs); begin butSubmit.Attributes.Add('onClick', 'return confirmSubmit();') ; if (Page.FindControl('hide') as HtmlInputHidden).Value = 'oui' then ecrire() ; (Page.FindControl('hide') as HtmlInputHidden).Value := '' ; end ; procedure TWebForm1.ecrire ; begin //Code à éxécuter si l'utilisateur confirme end ;
Note : le champ hidden permet d'avoir des variables qui communiquent entre le client et le serveur


Comment récupérer l'appui sur un touche et y associer des traitement ?
auteurs : neo.51, rami, bodbod
Nous allons voir comment capturer l'appui sur une touche du clavier coté client et comment y associer du code derrière. Dans cette exemple nous traitons l'appuis sur la touche "enter". dans la page aspx :

<head> <script language="javascript"> function trap() { if((event.which && event.which == 13)||(event.keyCode && event.keyCode == 13)) { document.Form1.ToucheReturn.value = 'true'; document.Form1.submit(); } } </script> </HEAD> <body MS_POSITIONING="GridLayout" onkeypress="Javascript:trap()"> <form id="Form1" method="post" runat="server"> <input id="ToucheReturn" type="hidden" value="false" name="ToucheReturn" runat="server">
et dans le code-behind :

procedure TWebForm1.OnInit(e: EventArgs); begin // Ajouter l'evenement sur la boite ToucheReturn Include( (Page.FindControl('ToucheReturn') as HtmlInputText).ServerChange, Self.ToucheReturn_TextChanged ); end ; procedure TWebForm1.ToucheReturn_TextChanged(sender: System.Object; e: System.EventArgs); // Ne pas oublier d'ajouter la prototype dans l'objet TWebForm1 begin // traitement à associé à l'appuis de la touche (Page.FindControl('ToucheReturn') as HtmlInputText ).Value := 'false' ; // on remet le hidden à l'état initia end ;

Comment fermer la fenêtre courante en code-behind ?
auteurs : neo.51, bodbod
Response.Write('<body><script>window.close();</script></body>') ;


Consultez les autres F.A.Q's

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.