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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Choix feuilles de styles par l'utilisateur


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut Choix feuilles de styles par l'utilisateur
    Bonjour je voulais savoir si il est techniquement possible de permettre à l'utilisateur de sélectionner différente feuilles de styles (CSS) par exemple à l'aidre de radio bouton.. ?

    Si oui comment faire ?

    Merci d'avance de votre aide !

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    Tu as accès à la propriété définissant la feuille de style appliquée à la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Page.StyleSheetTheme = "StyleSheet.css";

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Superbe, merci beaucoup !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Euh en fait... tu aurais la version VB.NET ?

  5. #5
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    Excuse moi, j'ai été un peu trop vite dans mes recherches.

    Voici la bonne solution: Dans ta page aspx, tu as la balise suivante représentant le feuille de style associée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="titi.css" rel="stylesheet" type="text/css" />
    Afin que tu puisses jouer sur les propriétés de cette balise, il suffit de rajouter un id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="titi.css" rel="stylesheet" type="text/css" id="stylesheet" />
    Ensuite, dans ton code, tu peux faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stylesheet.Href = "dark.css"

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Ok donc j'ai rajouter l'id dans le code HTML de ma page, j'ai contrôlé ca corresond bien a ce que tu as indiqué maintenat.

    Mais par contre dans mon code que je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.page.stylesheet    ou
     
    stylesheet

    il me dit Name 'stylesheet' is not declared !

    Mais je dois bien avoué que je ne sais pas bien où ni comment le déclarer !?

  7. #7
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    J'avoue que je n'ai rien fait de plus que ce que je t'ai expliqué

    Montre toujours le code html et le code vb.net correspondant au changement de stylesheet, on sait jamais.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Je sais pas... tu ne dois pas inclure une classe ou qqch tu dois bien le déclarer qq part non ?

  9. #9
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    Citation Envoyé par Irish
    Je sais pas... tu ne dois pas inclure une classe ou qqch tu dois bien le déclarer qq part non ?
    stylesheet ? il s'est déclaré tout seul en mettant id="stylesheet" dans la balise link... Essaye en ajoutant runat="server".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="titi.css" rel="stylesheet" type="text/css" id="stylesheet" runat="server" />
    Mais pour moi, ça a fonctionné sans ça.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Je demandais ca car par exemple quand tu ajoute un bouton (bouton1) ou une text box dans ta page mypage.aspx, en suite sur mypage.aspx.vb tu trouve la definition :

    Protected WithEvents bouton1 As System.Web.UI.WebControls.Button

    et c'est pour ca que je me demandais si tu devais aussi referencer qqch ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    j'ai trouvé la classe suivante :

    Dim style As New System.Web.UI.WebControls.Style

    qui me permet en suite d'utiliser la méthode suivante :

    style.CssClass.Replace("old style", "new style")

    Par contre je sais pas comment faire le liens avec le style déclarer dans le <Link>... est-ce que du coup il faut procéder différement ?

  12. #12
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Points
    1 352
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Par défaut
    Si tu a mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link Id=Style runat=server....
    Alors le lien est tout trouvé

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Bon désolé mais j'ai vraiment de la peine...

    Alors au niveau page.aspx j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <LINK id="Style" href="../StylesOrange.css" type="text/css" rel="stylesheet">
    Au niveau de la page.aspx.vb

    J'ai tout d'abord la déclaration d'une variable style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protected WithEvents style As New System.Web.UI.WebControls.Style
    Et en suite dans mon code .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    style.CssClass.Replace(style.CssClass, "StylesBleu.css")

    Mes fichier css s'appelant StylesOrange.css et StylesBleu.css et se trouvant à la racine du projet

    Mais cela fonctionne pas, tout d'abord style.CssClass me rend une valeur vide et si je triche en indiquant "StylesOrange.css" à la place, rien ne se passe non plus.

    PS Je n'ai pas mis le runnat="Server" car chaque fois le server me retourne une parse erreur lorsque j'essai d'afficher la page !

  14. #14
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Points
    1 352
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Par défaut
    Apres un peu de recherches voila ma solution pour faire ce que tu veux :


    Tu cree a la racine un repertoire "App_Themes"
    Dedans tu cree un repertoire "bleu"
    Dans ce repertoire, tu met ta feuille de style

    ensuite tu met dans ton code (désolé C# ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     protected override void OnPreInit(EventArgs e)
        {
     
            Page.Theme = "bleu";
            base.OnPreInit(e);
        }
    si tu veux un autre theme , tu cree un autre repertoire dans le repertoire "App_Themes".

    Apres tu n'as plus qu'a gérer tout ca pour changer de themes dans le
    onpreinit..
    En esperant t'avoir un peu aidé..

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Je te remercie, malheureusement ca m'aide pas des masses dans le sens ou il n'y pas de paramètre "Theme" pour la classe Page en VB.Net donc... je vois pas trop comment faire...

  16. #16
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    Bon bon... Je viens de refaire le projet en vb.net donc maintenant plus d'excuses.

    La différence, c'est qu'on est obligé de mettre runat="server" dans la balise html <style></style>

    Alors pour être sûr que ça fonctionne chez toi car tu as l'air de te prendre la tête, voici toutes les sources :p

    s1.css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    body { background-color: Red; }
    s2.css
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    body { background-color: Black; }
    Default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <link href="s1.css" rel="stylesheet" type="text/css" id="test" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        </form>
    </body>
    </html>
    Default.aspx.vb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Partial Class _Default
        Inherits System.Web.UI.Page
     
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            test.Href = "s2.css"
        End Sub
    End Class

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Ca m'a l'air parfais, je vais tester ca d'ici ce soir et je te reconfirme !!!

    Merci beaucoup pour ta patience en tout cas.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    Alors j'ai recopier ton code tel quel ou presque, car moi j'utilise VB donc la déclaration du language dans le code html de ta page ne peut pas être C#... et ben résultat moi je te dis qu'avec C# ca fonctionne très certainement mais pas en vb !!! Il me souligne toujours ma variable en disant qu'elle n'est pas déclarée !!!!

  19. #19
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Points
    14 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Par défaut
    Tu n'utilises pas le code behind pour écrire ton code ?

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Points
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Points : 26
    Par défaut
    si mais dans le code plus haut c'est un codefile .cs et moi j'utilise codebehind vb

    Et j'ai recopier exactement ce qui était plus haut en remplacant

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

    C# par VB et

    CodeFile="Default.aspx.cs" par CodeBehind="Default.aspx.vb" !!

    Et du coup dans la page .aspx.vb (soit le code behind) il me dit que la variable test.Hrf n'as pas été déclarée....

Discussions similaires

  1. [VBA-*] Choix de l'imprimante par l'utilisateur
    Par pjthedj dans le forum Général VBA
    Réponses: 12
    Dernier message: 14/09/2015, 06h16
  2. [XL-2007] Import d'une feuille Excel choisie par l'utilisateur
    Par dodo69 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/12/2010, 18h11
  3. Réponses: 1
    Dernier message: 21/06/2010, 12h36
  4. Changer de feuille de style en fonction du choix de l'utilisateur
    Par Jim_Nastiq dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/08/2006, 11h52
  5. [FLASH MX2004] Choix de police par l'utilisateur
    Par kephy dans le forum Flash
    Réponses: 2
    Dernier message: 19/09/2005, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo