begin process at 2012 02 14 09:12:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > GESTION DE L'ENTETE D'UNE PAGE ASPX

GESTION DE L'ENTETE D'UNE PAGE ASPX


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Niveau :Débutant Date de création :01/05/2004 Date de mise à jour :01/05/2004 21:50:46 Vu / téléchargé :9 864 / 295

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


 Description

Dans asp.net je trouve qu'on a pas beaucoup de controle sur l'en tete de la page ou alors c'est beaucoup trop compliqué.

J'ai donc developpé une petite classe qui nous permet de gerer ca tres facilement.

Je n'ai pas mis le code de cette classe vous le trouverez cependant dans le zip, j'ai mis juste l'exemple d'utilisation.

Ce code a un deuxieme objectif, je trouvais qu'on ecrivait à cq fois la meme chose en en tete (à quelques balises pretes) j'ai donc fait en sorte que cette classe puisse serialiser et etre reutilisable.
Je m'explique.
Vous avez décider d'avoir un nouveau styles CSS met au lieu d'avoir deux fichiers CSS vous en avez deux. Avant, pour ajouter vos styles au pages, il vous fallez modifier chaque page, ca passe si on en a 5 ou 6 mais sinon ...
Ce code vous permet d'oublier ce cauchemar.

En effet il vous suffit de modifier l'en tete sur une seule page, apres il y a serialisation de la classe, et toutes les autres pages construisent leur en tete en deserialisant.

Le code exemple si dessous nous montre comment procéder, pour qu'il marche il faut bien sur mettre cyril.dll dans votre dossier bin

il faut mettre ca dans la page aspx :   <head id="Header" runat="server">
/!\ VS.net à la facheuse habitude de modifier notre code HTML et supprime le runat="server" ce qui genere une erreur

Source

  • Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  • Dim Header As New HtmlGenericControl
  • Header = Me.FindControl("Header")
  • Dim Head As New Cyril.Web.Utility.Head
  • ''' Ces 5 methodes ajouterons aux mots clé :
  • ''' Bonjour , je , suis , Cyril
  • Head.AddKeyWords("bonjour je suis Cyril", " ")
  • Head.AddKeyWords("Bonjour,je,suis,Cyril")
  • Dim array() As String = {"Bonjour", "je", "suis", "Cyril"}
  • Head.AddKeyWords(array)
  • Dim arraylist As New ArrayList
  • arraylist.Add("Bonjour")
  • arraylist.Add("je")
  • arraylist.Add("suis")
  • arraylist.Add("Cyril")
  • Head.ClearKeywords()
  • ''' Une autre méthode pour mettre les mots clés :
  • ''' mais ca enleve tout ca qui sont deja présent
  • Dim array2() As String = {"Bonjour", "je", "suis", "Cyril"}
  • Head.KeyWords = array2
  • Head.Title = "Titre de la page"
  • Head.AddJsFile("cyril.js")
  • Head.ClearJsFile()
  • Head.AddJsFile("Function.js")
  • Head.AddCssFile("Cyril.Css")
  • Head.Author = "Cyril"
  • Head.Lang = "fr"
  • Head.Description = "Description du site"
  • Head.ShortCut_Icon = "monicone.ico"
  • Head.Content_Type = "text/html; charset=iso-8859-15" 'Valeur par defaut
  • '''Dans notre cas on vide tout le contenu de l'entete
  • ''' et on met ce qu'on vient de faire
  • ''' pour ajouter on ferais &=
  • Header.InnerHtml = Head.HeaderContent
  • ''' C'est bien beau tout ca mais dans la plupart des cas
  • ''' On aimerais bien avoir à faire ce travail qu'une fois
  • ''' pour la plupart des propriétés
  • ''' et ce qui serait top c'est qu'on changerais ces valeurs qu'une seule fois
  • ''' et ce serait pris en compte dans les autres pages
  • '''
  • ''' A ce problème il existe une solution (comme tout pb d'ailleur)
  • ''' nous allons serialiser tout ca :)
  • Dim oXMLserialiser As New XmlSerializer(GetType(Cyril.Web.Utility.Head))
  • Dim osW As New System.IO.StreamWriter(Server.MapPath("head.xml"))
  • oXMLserialiser.Serialize(osW, Head)
  • osW.Close()
  • ''' La serialisation est finit nous avons traduit notre classe dans un fichier xml
  • ' Mettez ca dans une autre page aspx
  • ''' il suffit alors de deserialiser dans les autres pages
  • ''' et on aura exactement les memes propriétés que dans la premiere page
  • 'Déserialisons
  • 'Dim Head As Cyril.Web.Utility.Head
  • 'Dim oxmlserialiser As New XmlSerializer(GetType(Cyril.Web.Utility.Head))
  • 'Dim osW As New System.IO.StreamReader(Server.MapPath("head.xml"))
  • 'Head = CType(oxmlserialiser.Deserialize(osW), Cyril.Web.Utility.Head)
  • 'osW.Close()
  • 'Header.InnerHtml = Head.HeaderContent
  • End Sub
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Header As New HtmlGenericControl

        Header = Me.FindControl("Header")

        Dim Head As New Cyril.Web.Utility.Head

        ''' Ces 5 methodes ajouterons aux mots clé : 
        ''' Bonjour , je , suis , Cyril

        Head.AddKeyWords("bonjour je suis Cyril", " ")

        Head.AddKeyWords("Bonjour,je,suis,Cyril")

        Dim array() As String = {"Bonjour", "je", "suis", "Cyril"}
        Head.AddKeyWords(array)

        Dim arraylist As New ArrayList
        arraylist.Add("Bonjour")
        arraylist.Add("je")
        arraylist.Add("suis")
        arraylist.Add("Cyril")

        Head.ClearKeywords()

        ''' Une autre méthode pour mettre les mots clés :
        ''' mais ca enleve tout ca qui sont deja présent
        Dim array2() As String = {"Bonjour", "je", "suis", "Cyril"}
        Head.KeyWords = array2


        Head.Title = "Titre de la page"
        Head.AddJsFile("cyril.js")
        Head.ClearJsFile()
        Head.AddJsFile("Function.js")
        Head.AddCssFile("Cyril.Css")
        Head.Author = "Cyril"
        Head.Lang = "fr"
        Head.Description = "Description du site"
        Head.ShortCut_Icon = "monicone.ico"
        Head.Content_Type = "text/html; charset=iso-8859-15" 'Valeur par defaut


        '''Dans notre cas on vide tout le contenu de l'entete
        ''' et on met ce qu'on vient de faire
        ''' pour ajouter on ferais &=
        Header.InnerHtml = Head.HeaderContent

        ''' C'est bien beau tout ca mais dans la plupart des cas
        ''' On aimerais bien avoir à faire ce travail qu'une fois 
        ''' pour la plupart des propriétés
        ''' et ce qui serait top c'est qu'on changerais ces valeurs qu'une seule fois
        ''' et ce serait pris en compte dans les autres pages
        ''' 
        ''' A ce problème il existe une solution (comme tout pb d'ailleur)
        ''' nous allons serialiser tout ca :)
        Dim oXMLserialiser As New XmlSerializer(GetType(Cyril.Web.Utility.Head))
        Dim osW As New System.IO.StreamWriter(Server.MapPath("head.xml"))
        oXMLserialiser.Serialize(osW, Head)
        osW.Close()
        ''' La serialisation est finit nous avons traduit notre classe dans un fichier xml


' Mettez ca dans une autre page aspx 

        ''' il suffit alors de deserialiser dans les autres pages 
        ''' et on aura exactement les memes propriétés que dans la premiere page

        'Déserialisons

        'Dim Head As Cyril.Web.Utility.Head

        'Dim oxmlserialiser As New XmlSerializer(GetType(Cyril.Web.Utility.Head))
        'Dim osW As New System.IO.StreamReader(Server.MapPath("head.xml"))
        'Head = CType(oxmlserialiser.Deserialize(osW), Cyril.Web.Utility.Head)

        'osW.Close()

        'Header.InnerHtml = Head.HeaderContent

    End Sub

 Conclusion

JE sais pas si j'ai été clair ds l'explication du code donc si vous comprenez pas, je peux reexpliquer

Si vous trouver qu'il manque des balises importantes dans le code dites le moi je les rajouterais

Je suis en train d'essayer de mettre du code javascript sans etre obligé de mettre des liens de pages


Hesitez pas à me mettre vos commentaires et impressions sur ce bout de code

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID...
Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Source avec Zip Source .NET (Dotnet) OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST<T>
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) GUESTBOOK AVEC GRIDVIEW par DanMor498
Source avec Zip CHECKED DROPDOWNLIST par fredzool
Source avec Zip Source avec une capture Source .NET (Dotnet) GRIDVIEW WITH TREEVIEW AND CALLBACK par fredzool
Source avec Zip APPELLER UN WEBSERVICE DEPUIS JAVASCRIPT par fredzool
Source avec Zip Source .NET (Dotnet) MONEY TEXTBOX WITH EMBEDED JAVASCRIPT par fredzool

Commentaires et avis

Commentaire de skowee59 le 08/06/2004 11:24:55

Désolé de te déranger mais j'essaie de débuter sous ASP et compagnie et j'aurai voulu savoir comment tu fait pour afficher une page ASPX.
J'arrive à afifcher ma page HTML mais pas l'ASPX.
D'avance, merci.

Skowee59

Commentaire de flo_yopyop le 03/05/2005 16:06:41

salut a toi

je vois que tu es un peu une bete de programmation alors je me demandai si tu savais comment changer de CSS suivant l'utilisateur qui se connect au site.
Ce CSS est tiré d'une base SQL et est mis dans une variable de session.
Le probleme c'est que je n'arrive pas a recupérer cette variable de session ds le code HTML de ma page ASPX.

Déclaration du CSS : (dans la partie HTML de la page ASPX)
<LINK href="style1.css" type="text/css" rel="stylesheet">

il faudrait changer le style1.css par la variable de session

merci d'avance si tu trouve une solution ;)

Commentaire de jesusonline le 03/05/2005 16:16:37 administrateur CS

pas trés compliqué :)

<link type="text/css" rel="stylesheet" id="css" runat="server" />

dans le code behind

protected withevents css as system.web.ui.controls 'je sais plus le type du controle :-/

css.attributes.add("href", """" & session("hrefCSS").tostring & """")

Ca doit etre à peu prés ca :p

Commentaire de flo_yopyop le 04/05/2005 11:44:01

merci beaucoup mais jai rien compris :D

en gros il faut que je mette quoi où ???

Commentaire de jesusonline le 04/05/2005 13:15:07 administrateur CS

tu met le <link....> dans le head de la page aspx,le protected dans la code behind, avec les autres protected withevents et le css.attributes... dans le page_load

Commentaire de flo_yopyop le 04/05/2005 15:10:01

ca ne fonctionne pa du tout

qd je met cette ligne il me met une erreur sur le nom css ("La variable 'Withevents' ne declenche aucun evenement'") :
Protected WithEvents css As System.Web.UI.CssStyleCollection

pour le <link ...> nickel mais comme attribut pour css je n'ai que add/remove/...

si qqun est connecté je laisse mon msn a tout hasard :
flo_yoman@hotmail.com

merci de votre aide ;)

Commentaire de jesusonline le 04/05/2005 15:16:14 administrateur CS

j'ai donné ce code "au pif" aprés à toi de voir pour l'adapter un brin :p

donc tu mets :

protected css as Syste.Web.UI.CSSStyleCollection

dans le page_load

css.attributes.add() ' ou un truc du genre ...

Commentaire de flo_yopyop le 04/05/2005 15:44:03

?????????????
La classe de base comporte le champ 'css', mais son type (System.Web.UI.CssStyleCollection) n'est pas compatible avec le type du contrôle (System.Web.UI.HtmlControls.HtmlGenericControl).

Ligne 12 : <link type="text/css" rel="stylesheet" id="css" runat="server" />
??????????????

franchement vive le PHPix :D

jai tjs aucun attribut ds le css, comprends po !!!
tu crois que tu peux te connect a msn pour que je te montre ca si ta le temps???

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales