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
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
Comme d'hab. Dans l'uri de la page, par session ou par cookie.Envoyé par topolino
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)
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.
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+
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 :
et un peu plus bas je pensais mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <%@ Register tagprefix="headerNav" Tagname="header" Src="header.ascx"%>
cAA etant une propriete de ma classe, je lui passe un parametre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <headerNav:header id="Navigation" NAME="Navigation" runat="server" cAA="Test" />
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
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
Tu as jeté un oeil dans la collection Attributes de ton contrôle ? C'est censé être dedans aussi.Envoyé par topolino
c'est quoi ca ? c'est ou ?collection Attributes de ton contrôle
Ben c'est une propriété de tous les UserControls (et WebControls).Envoyé par topolino
Partager