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 :

quelle est la propriété de StyleSheetTheme


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut quelle est la propriété de StyleSheetTheme
    Bonjour à tous.

    Je voudrais faire un truc sympa pour gérer les différents navigateurs sur mes sites et j'ai envie d'utiliser différentes feuilles CSS.

    Pour cela je me mets en tête de tester le navigateur et renvoyer la bonne feuille CSS.

    J'ai un souci car visiblement je n'indique pas ce qu'il faut au bon endroit. Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit
            With Page
                .Theme = "montheme"
                Dim strNavigateur As String = LCase(Request.ServerVariables("HTTP_USER_AGENT"))
                If strNavigateur.IndexOf("msie") <> -1 Then
                    .StyleSheetTheme = "~/App_Themes/montheme/feuilleIE.css"
                End If
                If strNavigateur.IndexOf("firefox") <> -1 Then
                    .StyleSheetTheme = "~/App_Themes/monthem/feuilleFF.css"
                End If
            End With
     
        End Sub
    Lorsque j'ouvre ma page sur IE il me bloque sur la ligne du StyleSheetTheme correspondant et me disant la chose suivante :
    La propriété StyleSheetTheme ne peut pas être définie ; remplacez la propriété à la place.
    Alors moi je veux bien, mais j'ai du mal à le suivre sur ce coup là !!

    Du coup j'ai tatonné et j'ai essayé les choses suivantes :
    - le nom complet de la feuille css : "feuilleIE.css"
    - juste le nom de la feuille : "feuilleIE"

    Mais cela ne change rien. Du coup, je comprend pas bien ce qu'il attend. Dans la MSDN (là : http://msdn.microsoft.com/en-us/libr...heettheme.aspx) ils disent qu'il faut mettre le nom de la feuille de style.

    Pouvez vous m'aider ?

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Dans la MSDN (là : http://msdn.microsoft.com/en-us/libr...heettheme.aspx) ils disent qu'il faut mettre le nom de la feuille de style.
    Gets or sets the name of the theme that is applied to the page early in the page life cycle.
    Ils disent qu'il faut mettre le nom du theme.

    Pkoi, tu crées pas un theme IE et un theme FF qui référencent chacun leur CSS. Du coup, t'auras juste à changer le thème

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci LuteceFalco.

    Alors, pourquoi je crée pas un theme ?
    D'abords parce que j'avais pas compris que le truc marchait comme ça. Moi, quand on me dit le nom de la feuille de style, je mets la feuille de style, hihihihi.

    Ensuite, si je fais comme ça, je vais avoir trois themes par site et vu ma gestion des choses actuelle, ça va me poser pas mal de souci car je stocke toutes les images relatives au site dans le répertoire du thème.

    Et en plus, des sites, j'en ai plein !!!

    Moi j'avais cru comprendre qu'on pouvait modifier la feuille de style indépendament du thème.
    Je me suis rendu compte qu'avec ma gestion du theme accrocher à la page, il va me chercher automatiquement la feuille de style dans le répertoire. Du coup, j'arrive pas à jouer avec un HtmlLink ou un autre truc du genre.

    Vois tu ce que je veux dire ?

    Bon, maintenant si tu me dis qu'on peut pas faire autrement, je m'en contente et je trouve une moyen de contourner. Mais vraiment, un répertoire par theme, je le sens pas bien du tout.

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Avec ça tu définies la feuille CSS.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void Page_Init(object sender, EventArgs e)     {
      
             HtmlLink css = new HtmlLink();
             css.Href = "css/fancyforms.css";
             css.Attributes["rel"] = "stylesheet";
             css.Attributes["type"] = "text/css";
             css.Attributes["media"] = "all";
             Page.Header.Controls.Add(css);

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok, sur le principe, mais j'ai des souci avec ça. C'était ma première idée, mais ça m'a pas donné ce que je voulais.

    En plus de quoi, il y a un truc que je capte pas, juge plutôt :
    Voici une Sub que j'appelle à partir du Init de ma page (j'ai viré le code qui ne concerne pas le CSS parce que la Sub fait d'autres trucs aussi). Plus tôt dans le chargement de la page je lui colle un theme.

    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
    18
     
            Public Shared Sub ConstruirePage(ByRef PageduSite As Page, ByVal PageId As Integer)
                Dim css As New HtmlLink()
                With css
                    Dim strNavigateur As String = LCase(PageduSite.Request.ServerVariables("HTTP_USER_AGENT"))
                    If strNavigateur.IndexOf("msie") <> -1 Then
                        .Href = "~/App_Themes/Antrejeu/AntrejeuIE.css"
                    End If
                    If strNavigateur.IndexOf("firefox") <> -1 Then
                        .Href = "~/App_Themes/Antrejeu/AntrejeuFF.css"
                    End If
     
                    .Attributes("rel") = "stylesheet"
                    .Attributes("type") = "text/css"
                    .Attributes("media") = "all"
                End With
                PageduSite.Header.Controls.Add(css)
            End Sub
    Page du Site c'est la page elle même qui est envoyé.

    Et dans le code interprété j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <link href="App_Themes/Antrejeu/AntrejeuIE.css" rel="stylesheet" type="text/css" media="all" />
    <link href="App_Themes/Antrejeu/Antrejeu.css" type="text/css" rel="stylesheet" />
    <link href="App_Themes/Antrejeu/AntrejeuFF.css" type="text/css" rel="stylesheet" />
    <link href="App_Themes/Antrejeu/AntrejeuIE.css" type="text/css" rel="stylesheet" /></head>
    Alors là, je capte pas pourquoi il me colle mes trois fichiers CSS à la suite du premier (j'ai pris ce code par IE).
    Soit j'ai merdé dans mon IF (et encore faut que je le change parce que si le navigateur est un autre je le gère pas, mais j'ai du mal avec les tests à trois branches), soit y a un truc qui m'échappe.

    Vois tu ce que je veux dire ?

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Regarde ce qu'il se passe en debug. Tu dois passer plusieurs fois dans ta fonction ConstruirePage

Discussions similaires

  1. [XL-2003] AutoShape « Bulle » : Quelle est la propriété pour le point d'ancrage
    Par chould dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/12/2013, 14h56
  2. Réponses: 2
    Dernier message: 20/06/2008, 14h32
  3. Réponses: 1
    Dernier message: 16/06/2008, 13h01
  4. quelle est la propriété pour dérouler/ouvrir un liste ?
    Par chapeau_melon dans le forum WinDev
    Réponses: 2
    Dernier message: 26/11/2007, 18h08
  5. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

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