Question (peut être) bête : faire varier le nom d'un contrôle dans le code sourc

tom741pawa Messages postés 19 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 - 9 juil. 2008 à 16:02
tom741pawa Messages postés 19 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 - 9 juil. 2008 à 18:49
Bonjour à tous,
voila ma question est peu être simpliste mais bon je sais pas alors :

j'ai une jolie boucle toute simple comme ca :

for (nb = 0; nb > 5; nb++)
                {
                    cat_1_link.Text = "mon texte .....";
                    cat_1_link.NavigateUrl = "mon url ......";
                }

A priori elle sert a rien, justement : je voudrai savoir si l'on peut faire varier le nom de mon cat_1_link.

Pour arriver en gros a ca :

cat_(la valeur de nb)_link.NavigateUrl = "mon url ......";

J'ai essayé : cat_+nb+_link.NavigateUrl = "mon url ......"; mais ca ne marche pas évidement ^^.

Comment je dois écrire ca pour que ca marche ?

Merci d'avance.
A voir également:

3 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
9 juil. 2008 à 17:47
Salut,

Donc, je ne sais pas si cela va t'aider mais j'essai quand même.
Je suppose que tu es sur un application web ASP.Net (au vue de ton control).

Tu peux alors rechercher tes controles de la facon suivante:
for (int i = 0; i < form1.Controls.Count; i++)//On cherche dans tous les controles de la form
{
Control ctrl = form1.Controls[i];

//Si le controle est un lien URL et que l'identifiant te va
if ((ctrl is HyperLink) && (ctrl.ID.Equals("cat_1_link")))
{
HyperLink link = (HyperLink)ctrl;
link.Text = "mon texte .....";
link.NavigateUrl = "mon url ......";
}
}

Je te conseille de faire appel au expressions régulières pour le test de ton ctrl.ID (qui est un string). Ainsi, cela prendra en compte toute tes possibilités.

Ceci devrait de donner un début de réponse. A toi de broder ton code pour peaufiner.

Bonne soirée,


Billou_13
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
9 juil. 2008 à 17:53
J'ai développé un peu ma réponse vite et voici la solution avec l'expression régulière:

using System.Text.RegularExpressions;

//...

Regex reg = new Regex("cat_[0-9]_link");

for (int i = 0; i < form1.Controls.Count; i++)
{
Control ctrl = form1.Controls[i];

if ((ctrl is HyperLink) && (reg.IsMatch(ctrl.ID)))
{
HyperLink link = (HyperLink)ctrl;
link.Text = "ton texte...";
link.NavigateUrl = "ton url...";
}
}

Bonne soirée,


Billou_13
0
tom741pawa Messages postés 19 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008
9 juil. 2008 à 18:49
Merci pour les codes ^^
je vais essayer de me débrouiller avec ca.
0
Rejoignez-nous