Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[ASP.NET] [GENERAL] COMMENT ÉCRIRE AVEC ASP.NET ?


Information sur le tutorial

Catégorie :Tutoriaux Tutorial .NET ( DotNet ) Date de création : 17/07/2004 17:45:46 Vu : 35 066 fois

Note :
8 / 10 - par 9 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Tutorial

Comment ecrire avec asp.net ?

 Cette question à l'air toute simple, mais il existe beaucoup de méthode pour ecrire dans la page, et malheureusement les plus utilisées sont pas les meilleures.

 
I. Response.Write

 Response.Write était la seule possibilité avec asp (3) d’écrire dans une page. Cette méthode existe toujours avec asp.net, mais elle est à évité. En effet, avec asp le code vbscript était mélangé au code HTML ce qui faisait des codes pas très esthétiques du genre :

La Date : <% Response.Write(Date())%><br/>
L'heure : <%Response.Write(Time())%><br/>

 On peut toujours mélanger le code vb.net ou C# avec du HTML mais ça ralentis l'exécution et asp.net n'a pas du tout été conçu dans cet optique la.

 On peut cependant utiliser Response.Write dans la méthode Page_Load de la page :

     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Response.Write("La date " & Now.ToShortDateString & "<br/>")
        Response.Write("L'heure " & Now.ToShortTimeString & "<br/>")

    End Sub

 Le problème de cette méthode écrira la date et l'heure en premier, avant la balise <html> :

 La date 17/07/2004<br/>L'heure 17:10<br/>
<html>
  <head>
....

  Avec Response.Write dans le code, on ne peut ecrire que dans le début du document, ce qui est bien sur une méthode qui nous ne convient pas.

 Pour combler cela, le développeur utilise généralement des labels, comme c’est le cas pour les applications Winforms.

 
II. Label1.Text = ...

 Pour pouvoir ecrire où il veut dans la page, les développeurs font généralement appel aux labels. Ils l'incorporent comme ceci dans la page aspx :

 <asp:Label id="Label1" runat="server"></asp:Label>

 Ils n'ont ensuite plus qu'a ecrire dans le code : 

         Label1.Text = "La date " & Now.ToShortDateString & "<br/>"
        Label1.Text &= "L'heure " & Now.ToShortTimeString & "<br/>"

 Mais cette solution n'est encore pas la meilleur, cette solution, est trop fortement inspiré des applications winforms, en effet, le code ci dessus est tout à fait correcte pour une winform, mais asp.net gère des WebForm, et il faut clairement séparé les deux, même si certains points se ressemblent beaucoup.

 Mais voyons pourquoi cette solution ne convient pas, pour cela analysons, le code HTML généré :

<span id="Label1">La date 17/07/2004<br/>L'heure 17:18<br/></span>

 Le code HTML semble bon, mais est-il utile d'avoir les balises span ?
Imaginez une feuille possédons une vingtaine d'information de quelques lettres, cela gênera un code HTML du style :
 Code Client : <span id="Label1">108D</span>
alors que
 Code Client : 108
aurait suffit, l’ajout des balises span autour du texte représente un poids non négligeable sur la page.
 Il existe une dernière solution pour faire face à ce problème mais elle est malheureusement moins utilisée.

 III. Literal1.Text = ....

 Il existe un contrôle asp.net qui fait exactement ce que nous voulons : ecrire dans la page sans l’entourer des balises span : le contrôle Literal

 On le place comme ceci dans la page aspx : 

 <asp:Literal id="Literal1" runat="server"></asp:Literal>

 et dans le code on fait tout simplement :

       Literal1.Text = "La date " & Now.ToShortDateString & "<br/>"

       Literal1.Text &= "L'heure " & Now.ToShortTimeString & "<br/>"

Enfin le code HTML généré sera tout simplement :

 La date 17/07/2004<br/>L'heure 17:18<br/>

il ne sera pas entouré des spans qui sont bien souvent inutile

 
IV. conclusion

 
Pour conclure, je vous conseil de complètement oublier le Response.Write, il peut servir seulement pour debugger nos applications. Les labels, peuvent toutefois servir dans certains cas. En effet ils ont des propriétés que le control literal ne possèdent pas comme : CssClass etc. ... mais dans la plupart des cas, il vaut mieux se servir du contrôle Literal qui fera du code plus propre.

signaler à un administrateur
Commentaire de OneHacker le 09/08/2005 12:46:26

Merci pour le turorial ! 10/10 !

signaler à un administrateur
Commentaire de amylee1984 le 27/02/2006 14:30:20

Merci , ce tuto va me servir bcp

signaler à un administrateur
Commentaire de llefe le 23/06/2006 00:56:25

ne pas oublier de déclarer le handler pour que ça marche dans vos classes vb:
Protected WithEvents Literal1 As System.Web.UI.WebControls.Literal

signaler à un administrateur
Commentaire de Pedrosa le 25/10/2006 12:15:43

Merci, ça va me permettre d'avancer un pas!!

signaler à un administrateur
Commentaire de jeanny le 21/09/2007 12:25:18

merci pour ce tuto il me permettra d'avancer en ASP.NET

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,078 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.