OVH Cloud OVH Cloud

Imprrssion et fermeture de fenetres

8 réponses
Avatar
Nagash
Question toute simple qui ne trouve pas de reponse satisfaisane sur le net:
quelles sont les methodes en asp.net que je peux mettre dans les OnClick de
boutons pour lancer l'impression de la page où se trouve le bouton et pour
fermer la fenetre en cliquant sur un bouton fermeture.

8 réponses

Avatar
Julien Bakmezdjian [MS]
Bonjour,

Il faut passer par du code côté client en insérant du Javascript dans la
page. Il n'y a rien à faire côté serveur sur le click.
Pour ferme la fenêtre, la commande JS est window.close()
Pour lancer une impression, la commande est window.print().

Exemple : <input type="button" value="Imprimer cette page"
onClick="window.print()">

Avec ces informations, le Web ne devrait pas vous résister pour trouver ce
que vous cherchez.

Cordialement,

Julien Bakmezdjian

"Nagash" a écrit dans le message de news:

Question toute simple qui ne trouve pas de reponse satisfaisane sur le
net:
quelles sont les methodes en asp.net que je peux mettre dans les OnClick
de
boutons pour lancer l'impression de la page où se trouve le bouton et pour
fermer la fenetre en cliquant sur un bouton fermeture.


Avatar
Nagash
merci mais j'obtiens ces messages d'erreur dans les deux cas: fermeture et
impression, window.close() et window.print()

'window' n'est pas un membre de 'ASP.FichePro_aspx'

je suis donc passé en code behind et fait ça par des response.write générant
le bon html et ça marche.
merci quand même
Avatar
Julien Bakmezdjian [MS]
Bonjour,

Le code Javascript dont je vous parlais, est un code à placer au sein du
code HTML. Il ne s'agit pas de code serveur (qui lui se trouve dans le "code
behind").
Donc pour l'ajouter, oui, la meilleure solution est de passer en mode HTML
de la page .aspx en insérant un code identique à celui que j'évoquais dans
mon post précédent.

Cordialement,

Julien Bakmezdjian


"Nagash" a écrit dans le message de news:

merci mais j'obtiens ces messages d'erreur dans les deux cas: fermeture et
impression, window.close() et window.print()

'window' n'est pas un membre de 'ASP.FichePro_aspx'

je suis donc passé en code behind et fait ça par des response.write
générant
le bon html et ça marche.
merci quand même



Avatar
Patrice
Bien faire la différence entre le code client et le code serveur...

Pour émettre du script vers le client il est également possible d'utiliser
les attributs (Attributes.add("onclick","alert('Hello world');")) ou
RegisterClientScriptBlock.

Response.Write utilisé en conjonction avec des contrôles serveur ne sortira
pas le script à un endroit tout à fait standard ("afficher la source" dans
le navigateur pour voir le code HTML résultat).

--
Patrice

"Nagash" a écrit dans le message de
news:
merci mais j'obtiens ces messages d'erreur dans les deux cas: fermeture et
impression, window.close() et window.print()

'window' n'est pas un membre de 'ASP.FichePro_aspx'

je suis donc passé en code behind et fait ça par des response.write


générant
le bon html et ça marche.
merci quand même



Avatar
Nagash
Pour info, je suis bel et bien passé par code behind (.aspx.vb) en faisant:

Private Sub fermer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles fermer.Click
Response.Write("<body><script>window.close();</script></body>")
End Sub

ce qui reviendrai au même si je le faisais coté client, malheureusement pour
je ne sais quelle raison ça ne marche pas sous .aspx
Avatar
Julien Bakmezdjian [MS]
Bonjour,

En faisant cela, c'est bel et bien du code client qui va fermer la
fenêtre...
Vous avez simplement ajouté un aller/retour serveur dont le seul but est
d'ajouter à la page le code client pour la fermeture... Ce qui est peut-être
un peu "lourd"...
Vous devriez normalement pouvoir ajouter du code client dans la page .aspx,
comme nous vous l'avions indiqué (ajout de code js sur l'événement onclick
d'un simple bouton HTML).

Cordialement,

Julien Bakmezdjian


"Nagash" a écrit dans le message de news:

Pour info, je suis bel et bien passé par code behind (.aspx.vb) en
faisant:

Private Sub fermer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles fermer.Click
Response.Write("<body><script>window.close();</script></body>")
End Sub

ce qui reviendrai au même si je le faisais coté client, malheureusement
pour
je ne sais quelle raison ça ne marche pas sous .aspx


Avatar
Dubrow [Benjamin Gauthey] [MVS]
Ca serait comme plus propre de le faire du coté client. Car un postBack pour
fermer un fenetre c'est pas top
"Nagash" a écrit dans le message de news:

Pour info, je suis bel et bien passé par code behind (.aspx.vb) en
faisant:

Private Sub fermer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles fermer.Click
Response.Write("<body><script>window.close();</script></body>")
End Sub

ce qui reviendrai au même si je le faisais coté client, malheureusement
pour
je ne sais quelle raison ça ne marche pas sous .aspx


Avatar
Nagash
le problème en fait était que j'utilisais des ASP:Button et non pas des
<input type=button ... > classiques, c'est pour cela que j'etais forcé de
passer par le serveur. merci de vos reponse j'ai changé le type de mes
buttons et ça marche tout à fait normalement.