Domanda

Sto cercando di creare un "menu di controllo utente" in cui i collegamenti ai controlli utente di una pagina sono posizionati nella parte superiore della pagina.Ciò mi consentirà di inserire diversi controlli utente su una pagina e di consentire all'utente di passare a quella sezione della pagina senza scorrere troppo.Per fare ciò, ho inserito ogni controllo utente in una cartella (usercontrols) e ho assegnato a ciascun controllo una proprietà Descrizione (<%@ Control Language="C#" Description = "Vehicles" .... %>).

La mia domanda è: come posso accedere dinamicamente a questa descrizione?Voglio utilizzare questa descrizione come collegamento nel mio menu.Finora, ho un foreach sulla mia pagina che cerca in ControlCollection un controllo di tipo ASP.usercontrols.Se lo è, suppongo di poter accedere ai suoi attributi e acquisire la proprietà della descrizione.Come posso fare questo?(Sono anche aperto a un modo migliore per ottenere il mio "menu di controllo utente", ma forse questa è un'altra domanda.) Dovrei usare ((System.Web.UI.UserControl)mydynamiccontrol).Attributes.Keys?

È stato utile?

Soluzione

puoi scorrere la raccolta ed eseguire un cambio o alcune istruzioni if

Suggerirei di avere un'interfaccia o una classe base astratta per tutti i controlli utente:

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";}}
}

Quindi puoi eseguirne il loop come fai:

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

Spero che questo ti aiuti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top