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 :

[C#] UserControl


Sujet :

ASP.NET

  1. #1
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut [C#] UserControl
    Bonjour,

    j'ai un userControl dans lequel se trouve mon menu de navigation.
    D'une page a une autre j'ai besoi de transmettre au userControl des variables afin d'adapeter ma barre de nav.


    comment dois je faire pour passer des parametres ?


    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut Re: [c#][aspx] UserControl
    Citation Envoyé par topolino
    comment dois je faire pour passer des parametres ?
    Comme d'hab. Dans l'uri de la page, par session ou par cookie.

    Les applis web c'est pas compliqué en fait. Y a tellement de limitations qu'on fait vite le tour des possibilités :)

    Et les contrôles ont accès aux mêmes choses que les pages (Request, Session, tout ça, pile poil pareil)

  3. #3
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    Oui je sais qu'il existecookie, session, request par get et post, mais je croyais qu'il existait une maniere simple de passer des parametres dans des userControl a l'instar des 'require' de php.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Par défaut
    Bonjour,
    Une autre méthode. Ton user control, c'est une classe.
    Tu peux donc publier des propriétés :
    Ex simple :

    public int SelectedIndex;

    void Page_Load(Object sender, EventArgs e)
    {
    switch (SelectedIndex)
    {
    case 0 :
    // Init des différents items du menu
    break;

    case 1 :
    // Init des différents item du menu
    break;
    }
    }


    Dans ton code qui appelle ton user control :
    <uc0:header id="UserControl1" runat="server" SelectedIndex="1"></uc0:header>

    a+

  5. #5
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    ca ne marche pas.

    Voila plus en detail ce que je fais. J'ai un ascx qui a pour but d'afficher sur toutes les pages du site la barre de navigation.

    J'ai une class qui creer cette barre de nav :
    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
    34
     
    private string _cA;
     
    public string cAA{
    get{return _cA;}
    set{_cA = value;}
    }
     
    public Table OngletCreate(){
    string cAAA = _cA;
    string[] arrItems = new string[] {"Test","Sur","Array"};
    LinkButton oLinkButton;
    PlaceHolder oPlaceHolder = new PlaceHolder();
    Table oTable = new Table();
    oTable.Width = Unit.Percentage(100);
    TableRow oTableRow = new TableRow();
    TableCell oTableCell;
     
     
    foreach (string cItems in arrItems){
    oLinkButton = new LinkButton();
    oLinkButton.ID = cItems.ToString();
    oLinkButton.Text = cItems.ToString();
    oLinkButton.CommandName = oLinkButton.ClientID;
    oLinkButton.ForeColor = System.Drawing.Color.Black;
    oLinkButton.Command += new CommandEventHandler(oLinkButton_Command);
    oTableCell = new TableCell();
    oTableCell.Controls.Add(oLinkButton);
    oTableRow.Controls.Add(oTableCell);
    }
    oTable.Controls.Add(oTableRow);
     
    return oTable;
    }

    dans ma page index, je place mon acsx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ Register tagprefix="headerNav" Tagname="header" Src="header.ascx"%>
    et un peu plus bas je pensais mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <headerNav:header id="Navigation" NAME="Navigation" runat="server" cAA="Test" />
    cAA etant une propriete de ma classe, je lui passe un parametre.

    Lorsque j'essaye juste de voir si ma variable privée '_cA' est bien renseigné, et bien on me dit 'null'.

    Comment dois je passé ce fameux parametre alors ?

    merci

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 298
    Par défaut
    Désolé,
    Trop débutant pour pouvoir te renseigner plus.
    Je passe directement par une prop publique, et là ça marche.
    C'est peut-être un pb d'initialisation de ta classe.
    Dans un user control aucune idée de comment ça marche
    bon courage

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par topolino
    Lorsque j'essaye juste de voir si ma variable privée '_cA' est bien renseigné, et bien on me dit 'null'.
    Tu as jeté un oeil dans la collection Attributes de ton contrôle ? C'est censé être dedans aussi.

  8. #8
    Membre éprouvé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Par défaut
    collection Attributes de ton contrôle
    c'est quoi ca ? c'est ou ?

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par topolino
    collection Attributes de ton contrôle
    c'est quoi ca ? c'est ou ?
    Ben c'est une propriété de tous les UserControls (et WebControls).

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

Discussions similaires

  1. [VB.NET] ViewState et UserControl
    Par franculo_caoulene dans le forum ASP.NET
    Réponses: 5
    Dernier message: 20/04/2005, 15h33
  2. [C#] Inserer dynamiquement un userControl
    Par topolino dans le forum ASP.NET
    Réponses: 9
    Dernier message: 23/02/2005, 13h51
  3. XMLRAD equivalent usercontrol ASp .NET
    Par le-roy_a dans le forum XMLRAD
    Réponses: 10
    Dernier message: 10/12/2004, 14h09
  4. Réponses: 12
    Dernier message: 18/03/2004, 15h09
  5. [VB6] [UserControl] Évènements personnalisés
    Par Frankywinky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/05/2003, 17h56

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