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 :

Composants qui ne s'affiche pas dynamiquement


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut Composants qui ne s'affiche pas dynamiquement
    Bonjour à tous,

    Pour que vous voyez ou j'en suis, je dévellope en c# au boulot et j'essaie de me mettre à l'ASP.Net pour mon privé, mais j'ai vraiment du mal ^^

    Donc en faite, j'essaie actuellement de faire afficher un menu de login si mon utilisateur ne s'est pas encore connecter...

    Mon problème est que, il m'affiche tout sauf mes textbox... voyez plutôt :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Dogua3._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>TITREDUSITE</title>
        <link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
        <link rel="shortcut icon" href="img/favicon.png" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="wrapper">
            <div id="header">
                <ul id="speedbar">
                    <asp:Label ID="laTopMenu" Text="" runat="server"/>   
                  </ul>
            </div>
        <div id="main">
            <ul id="sidebar">
                <li id="navigation">
                     <asp:Label ID="laNavMenu" Text="" runat="server"/>
                </li> 
                <asp:Label ID="laLoginMenu" Text="" runat="server"/>
            </ul>
           </div>
        </div>
        <div id="footer">
        <p>blablabla</p>
    </div> 
    </form>
    </body>
    </html>
    Default.aspx.cs:
    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
    19
    20
    21
    22
    protected void Page_Load(object sender, EventArgs e)
            {
                laTopMenu.Text = Global.objD3.Get_TopMenu();
                laNavMenu.Text = Global.objD3.Get_Menu_SideBar();
                if (Session["Useruid"] != null)
                {
                    laLoginMenu.Text = "Menu Utilisateur";
                }
                else
                {
                    laLoginMenu.Text = "<li id=\"connection\"><h2>Connexion</h2><p>"+
                             "<asp:label ID=\"laLogin\" Text=\"Login :\" runat=\"server\"/>"+
                             "<asp:TextBox ID=\"tbLogin\" Width=\"110px\" TextMode=\"SingleLine\" runat=\"server\"/>"+
                        "</p><p>"+
                             "<asp:label ID=\"laPassword\" Text=\"Mot de passe :\" runat=\"server\"/>"+
                             "<asp:TextBox ID=\"tbPassword\" Width=\"110px\" TextMode=\"Password\" runat=\"server\"/>"+
                        "</p><p>"+
                             "<a href=\"#\" class=\"undersize\">Mot de passe oublié ?</a>"+
                             "<asp:Button ID=\"btnOk\" Text=\"Ok\" runat=\"server\"/><br/>"+
                             "<a href=\"register.aspx\" class=\"undersize\">Creer un compte sur le site</a>"+
                        "</p></li>";
                }
    Et donc du coups, lorsque j'èxécute, il ne m'affiche aucun composant asp :s
    Je m'y prends sans doute mal, mais j'ai déjà essaie d'autre choses et je perdais la mise en forme de ma feuille de style :s

    D'avance merci

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,
    Citation Envoyé par dogua Voir le message
    Je m'y prends sans doute mal
    Oui

    Les contrôles .Net ne se construisent pas dynamiquement comme cela. Quand tu affectes une valeur à la propriété "text" d'un label ce texte ne sera pas interprété mais envoyé encodé en html au client.

    Si tu veux construire dynamiquement ta page, il faut utiliser des instances des contrôles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TextBox text = new TextBox();
    this.Page.Controls.Add(text);
    Dans la mesure du possible, il ne faut jamais construire le code HTML de tes pages à partir d'une chaîne de caractères. Joue sur la visibilité des contrôles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:TextBox ID="TextBox1" Visible='<%# MaMethode() %>' runat="server"></asp:TextBox>
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Bonjour,

    En faite, si j'utilise Form.Controls.add(child) il ne conserve pas le style css(<li id="connection"></li>)par exemple...
    Et sinon quand j'utilise visible=true ou false... cela n'a aucun effet, le controle s'affiche quand même :s

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Le style des contrôles serveur (runat="server") ne doit pas se baser sur l'identifiant du contrôle car il est modifié par le runtime. Si j'ai un contrôle dont l'id est "disconnect", il deviendra dans la page "ctl00_HeaderContener_ctl00_disconnect".

    Il faut donc utiliser des classes de style et ajouter cet attribut au contrôleSinon, montre le code balisé et behind s'il te plaît.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Le style des contrôles serveur (runat="server") ne doit pas se baser sur l'identifiant du contrôle car il est modifié par le runtime. Si j'ai un contrôle dont l'id est "disconnect", il deviendra dans la page "ctl00_HeaderContener_ctl00_disconnect".

    Il faut donc utiliser des classes de style et ajouter cet attribut au contrôleSinon, montre le code balisé et behind s'il te plaît.

    A+
    Effectivement avec ça, ca fonctionne

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Points : 115
    Points
    115
    Par défaut
    Bon en faite, j'ai tout résolu
    Je met le tout dans un placeholder que je met visible ou non en fonction de l'alimentation d'une variable...

    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
    <asp:PlaceHolder ID="phConnexion" runat="server">
                <li id="connection">
                    <h2>Connexion</h2>
                        <p>
                            <asp:label ID="laLogin" Text="Login :" runat="server"/>
                            <asp:TextBox ID="tbLogin" Width="110px" TextMode="SingleLine" runat="server"/>
                        </p>
                        <p>
                             <asp:label ID="laPassword" Text="Mot de passe :" runat="server"/>
                             <asp:TextBox ID="tbPassword" Width="110px" TextMode="Password" runat="server"/>
                        </p>
                        <p>
                             <asp:HyperLink ID="hlOublier" Text="Mot de passe oublié ?" NavigateUrl="~/Default.aspx" CssClass="undersize" runat="server" />
                             <asp:Button ID="btnOk" Text="Ok" runat="server"/><br/>
                             <asp:HyperLink ID="hlRegister" Text="Creer un compte sur le site" NavigateUrl="~/register.aspx" CssClass="undersize"  runat="server" />
                        </p>
                </li>
                </asp:PlaceHolder>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    protected void Page_Load(object sender, EventArgs e)
            {
                /*Partie de code...*/
                if (Session["Userid"] != null)
                {
                    phConnexion.Visible = false;
                }
                else
                {
                    phConnexion.Visible = true;
                }
            }

  7. #7
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Ou plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    phConnexion.Visible = Session["Userid"] != null;
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Composants qui ne s'affichent pas
    Par Naerie dans le forum Composants
    Réponses: 3
    Dernier message: 24/12/2014, 00h25
  2. Composant JSF qui ne s'affiche pas
    Par minooo dans le forum JSF
    Réponses: 6
    Dernier message: 05/06/2013, 16h15
  3. Composant InfiniteProgressPanel qui ne s'affiche pas
    Par olivier57b dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 28/08/2012, 12h40
  4. Contrôle dynamique qui ne s'affiche pas
    Par gta126 dans le forum VB.NET
    Réponses: 2
    Dernier message: 01/11/2009, 11h05
  5. [W3C] [PHP, CSS et W3C] Menu dynamique qui ne s'affiche pas sous Firefox
    Par kervano dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 03/06/2007, 14h25

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