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 :

Menu dont les items sont des tables construites dans un UserControl


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut Menu dont les items sont des tables construites dans un UserControl
    Bonjour,

    Je cherche à faire un menu asp horizontal, pour lequel chaque item aurait cette forme (static item):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <table id="tableButton" runat="server" border="0" cellpadding="0" cellspacing="0">
        <tr style="height: 33px;">
            <td style="background-image: url(../Images/Menu/btn_normal_gauche.png); width: 10px;">
            </td>
            <td id="middle" style="background-image: url(../Images/Menu/btn_normal_milieu.png); background-repeat: repeat-x;">
                <asp:Label ID="buttonName" runat="server"></asp:Label>
            </td>
            <td style="background-image: url(../Images/Menu/btn_normal_droite.png); width: 10px;">
            </td>
        </tr>
    </table>
    J'ai déjà fait ce travail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <asp:Menu DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2" ID="Menu1" runat="server" Orientation="Horizontal" StaticEnableDefaultPopOutImage="False" DynamicHorizontalOffset="5" StaticSubMenuIndent="0">
        <StaticMenuItemStyle CssClass="staticMenu" />
        <StaticHoverStyle CssClass="staticMenuHover" />
    	<StaticItemTemplate>
            <uc1:Button ButtonName=  Width="135" runat="server" />
        </StaticItemTemplate>
    	<Items>
            <asp:MenuItem Value="orders"></asp:MenuItem>
            <asp:MenuItem NavigateUrl="~/Pages/Approval.aspx" Value="myapprovals"></asp:MenuItem>
            <asp:MenuItem NavigateUrl="~/Pages/Delegation.aspx" Value="delegation"></asp:MenuItem>
            <asp:MenuItem Value="admin"></asp:MenuItem>
        </Items>
    </asp:Menu>
    Où bien sûr uc1:Button est le UserControl comprenant le code du tableau mis en 1er.
    Je ne sais pas comment passer une valeur à la propriété ButtonName définie dans le .cs associés à mon UserControl.
    Au vu de mes recherches, il faut que je fasse passer <%# Eval("Text") %> mais comment...?

    Merci d'avance!

  2. #2
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Salut,
    Pour faire ça il y a plusieurs méthodes mais pour moi la plus facile est la suivante:
    1. dans code behind de ton UC, expose la propriété Text de ton Label
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      public string UcText
              {
                  get { return buttonName.Text; }
                  set { buttonName.Text = value; }
              }
    2. dans .aspx, Comme on peut accéder sans difficulté a UcText, tu peux ecrire
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      <StaticItemTemplate> 
              <uc1:Button ButtonName=  Width="135" runat="server" UcText= <%# Eval("Text") %> />
      </StaticItemTemplate>
      J'espere que cela répondra a ton besoin

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    Justement, c'est ce que j'ai fait avec la propriété ButtonName comme toi tu as utilisé UcText, mais j'ai ce message en warning:
    Attribute values must be enclosed in quotation marks.
    Et à l'affichage, pas de texte....

  4. #4
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Citation Envoyé par cyrano_de_bergerac Voir le message
    Justement, c'est ce que j'ai fait avec la propriété ButtonName comme toi tu as utilisé UcText, mais j'ai ce message en warning:
    "Attribute values must be enclosed in quotation marks."

    Et à l'affichage, pas de texte....
    Dans ce la, tu ajoutes la valeur entre deux simple quote:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     UcText='<%# Eval("Text") %>'

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Ramajb Voir le message
    Dans ce la, tu ajoutes la valeur entre deux simple quote:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     UcText='<%# Eval("Text") %>'
    J'avais déjà essayé mais ça ne marchait pas.

    Mais j'ai trouvé grâce à toi:

    Ce que je faisais et qui ne marchait pas:

    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
     
    private string mButtonName;
            private string mWidth;
     
            public string ButtonName
            {
                get { return mButtonName; }
                set { mButtonName = value; }
            }
     
            public string Width1
            {
                get { return mWidth; }
                set { mWidth = value; }
            }
     
            protected void Page_Load(object sender, EventArgs e)
            {
                buttonName.Text = mButtonName;
                tableButton.Width = mWidth;
            }

    Apparement la solution est de directement assigner la valeur à mon label, comme tu me l'as montré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public string UcText
            {
                get { return buttonName.Text; }
                set { buttonName.Text = value; }
            }
    Mais ce que je ne comprends pas, c'est pourquoi mon code ne fonctionne pas, et surtout pourquoi il semble fonctionner pour le Width et pas pour le ButtonName alors que c'est le même principe.

    Mais merci!

  6. #6
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    T'en est sur que tu avais mis Width1 à la place de Width car ton balisé ci-dessus dis le contraire. Sinon pour répondre à ta question, moi même je ne sais pas pourquoi ça marche pas , peut être le faite de le mettre dans l’événement Load, donc il faut savoir le cycle de vie d'un UC dans une page.
    Par contre, au lieu de faire deux choses (propriété et assignation dans Load), on peut aller rapidement en faisant l'assignation dans la propriété.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Ramajb Voir le message
    T'en est sur que tu avais mis Width1 à la place de Width car ton balisé ci-dessus dis le contraire. Sinon pour répondre à ta question, moi même je ne sais pas pourquoi ça marche pas , peut être le faite de le mettre dans l’événement Load, donc il faut savoir le cycle de vie d'un UC dans une page.
    Par contre, au lieu de faire deux choses (propriété et assignation dans Load), on peut aller rapidement en faisant l'assignation dans la propriété.
    Le problème ne venait pas d'une erreur d'écriture du Width/Width1, c'est juste qu'au début j'utilisais Width1 partout, puis j'ai mis Width.

    Et sinon, quand je charge mon UserControl ailleurs que dans le menu en lui passant la valeur simplenent, c'est à dire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uc1:Button ID="buttonTest" ButtonName="Button Test" Width="155" runat="server" />
    ça marche.

    Bef, c'est quand même très bizzare, mais merci de m'avoir aidé!

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

Discussions similaires

  1. Tableau dont les éléments sont des tableaux
    Par tpdm dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/01/2010, 19h02
  2. arbre LinkTree dont les noeuds sont des liens
    Par caro_caro dans le forum Wicket
    Réponses: 5
    Dernier message: 05/06/2009, 01h32
  3. Réponses: 3
    Dernier message: 20/08/2007, 17h30
  4. Résultat exact division dont les membres sont des requêtes
    Par totoranky dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/08/2007, 14h51
  5. Tri alphabétique d'un TreeMap dont les clés sont des String
    Par Djakisback dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 31/03/2006, 14h33

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