2008-12-04 17 views
0

J'ai un problème et je voudrais apprendre la bonne façon de résoudre ce problème.Meilleur design pour l'utilisation RadioButtonList

J'ai une données Objeckt

class LinkHolder { 
    public string Text; 
    public string Link; 
} 

Je voudrais présenter à l'utilisateur une liste RadioButton qui utilise la valeur LinkHolder.Text sous forme de texte descriptif. ensuite sur le postback, je voudrais faire une

Server.Transfer(LinkHolder.Link) 

sur le lien correspondant.

Je ne sais pas quelle est la meilleure/la plus correcte façon de procéder. Tous les indices seraient appréciés.

Répondre

1

Vous devez définir DataTextField et DataValueField sur votre RadioButtonList. Ensuite, les valeurs correctes devraient apparaître.

Vous pouvez essayer de convertir l'élément selected en un LinkHolder.

0

Votre méthode devrait fonctionner. Je pense que vous devriez utiliser accesseurs dans votre classe si

class LinkHolder { 
    public string Text { get; set;} 
    public string Link { get; set;} 
} 

votre RadioButtonList à Liez un f.ex. Pourquoi utiliser une radiobuttonlist au lieu de simplement lister vos liens comme hyperliens au lieu de devoir utiliser Server.Transfer?

0

le Class LinkHolder était juste un exemple court. J'ai des accesseurs dans la vraie classe. Les radiobuttons étaient un choix de conception, donc im allant avec eux.

Lors de mes tests, j'imprimais le nom de la classe, et non la propriété Text, lorsque j'utilisais List<LinkHolder> en tant que DataSource. Je ne sais pas comment/si vous pouvez spécifier une propriété que RadioButtonList doit imprimer.

Je comprends aussi que si j'utilise List<LinkHolder> comme source de données, je ne récupérerai pas d'objet LinkHolder lorsque je demanderai SelectedItem. Je vais plutôt obtenir un ListItem.

Une bonne solution de contournement?