Question

Im essayant de créer un « menu de contrôle de l'utilisateur » où des liens vers les usercontrols d'une page sont placés en haut de la page. Cela me permettra de mettre plusieurs usercontrols sur une page et permettre à l'utilisateur pour accéder à cette section de la page sans défilement tant. Pour ce faire, je mets chaque usercontrol dans un dossier (usercontrols) et a donné le contrôle chacun une propriété Description (<%@ Control Language="C#" Description = "Vehicles" .... %>).

Ma question est de savoir comment puis-je accéder à cette description dynamique? Je veux utiliser cette description comme le lien dans mon menu. Jusqu'à présent, j'ai un foreach sur ma page qui regarde dans le ControlCollection pour un contrôle qui est du type ASP.usercontrols. Si c'est je suppose que je pourrais accéder à ses attributs et saisir cette propriété de description. Comment puis-je faire ceci? (Im également ouvert à une meilleure façon de réaliser mon menu « contrôle utilisateur », mais c'est peut-être une autre question.) Dois-je utiliser ((System.Web.UI.UserControl)mydynamiccontrol).Attributes.Keys?

Était-ce utile?

La solution

vous pouvez parcourir la collection et faire soit un commutateur ou quelques instructions if

Je vous suggst avez une interface ou une classe de base abstraite pour tous vos contrôles utilisateur:

public abstract class MyBaseClass : UserControl
{
  public abstract string MyDescription {get;}
}

public MyUserControlA : MyBaseClass
{
  public string MyDescription {get {return "my description";}}
}

public MyUserControlB : MyBaseClass
{
  public string MyDescription {get {return "my other description";}}
}

Ensuite, vous pouvez mettre en boucle sur eux comme vous le faites:

foreach ...
if (mydynamiccontrol is MyBaseClass)
{
    Response.Write(((MyBaseClass)mydynamiccontrol).MyDescription);
}

Hope this helps

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top