Proprietà nei controlli server ASP.NET

Le proprietà sono simili ai campi, ma dispongono di metodi delle funzioni di accesso. È necessario esporre le proprietà anziché i campi pubblici dai controlli, poiché le proprietà consentono di nascondere i dati, è possibile crearne nuove versioni e sono supportate dalle finestre di progettazione visive, quali Visual Studio .NET. Le funzioni di accesso sono in grado di eseguire ulteriore logica di programma oltre a impostare o recuperare una proprietà. Per ulteriori informazioni sulle proprietà, vedere Cenni preliminari sulle proprietà.

Proprietà ereditate da Control

Per un elenco completo delle proprietà che un controllo eredita dalla classe Control, vedere System.Web.UI.Control. Nell'elenco riportato di seguito vengono descritte alcune proprietà comunemente utilizzate.

  • Controls: insieme dei controlli figlio di un controllo.
  • ID: identificatore fornito dall'utente per un controllo.
  • Page: pagina che contiene il controllo.
  • Parent: controllo il cui insieme Controls appartiene a un controllo. Il controllo A è padre del controllo B se B è un elemento di A.Controls.
  • ViewState: struttura di dati inviata al client e restituita dallo stesso, utilizzata in genere per la persistenza dei dati del form nei percorsi andata/ritorno. ViewState è di tipo StateBag, un dizionario nel quale vengono archiviati i dati come coppie nome/valore.
  • EnableViewState: indica il mantenimento dello stato di visualizzazione da parte del controllo nei percorsi andata/ritorno. Se un controllo padre non mantiene il proprio stato di visualizzazione, automaticamente lo stato di visualizzazione per i relativi controlli figlio non viene mantenuto.
  • UniqueID: identificatore univoco gerarchicamente definito assegnato a un controllo dal framework di pagina ASP.NET.
  • ClientID: identificatore univoco assegnato a un controllo dal framework di pagina ASP.NET e di cui viene effettuato il rendering come attributo ID HTML sul client. La proprietà ClientID presenta alcune differenze rispetto a UniqueID poiché UniqueID può contenere i due punti (:), carattere non valido nell'attributo ID HTML né consentito nei nomi di variabili negli script sul lato client.
  • Visible: determina la visibilità di un controllo su una pagina.

Proprietà ereditate da WebControl

Un controllo che deriva da WebControl eredita proprietà aggiuntive correlate alla visualizzazione. Per un elenco completo delle proprietà ereditate da WebControl, vedere System.Web.UI.WebControl. Nell'elenco riportato di seguito vengono descritte alcune proprietà di WebControl comunemente utilizzate.

  • Font: tipo di carattere per il controllo.
  • ForeColor: colore di primo piano del controllo.
  • BackColor: colore di sfondo del controllo.
  • Height: altezza del controllo.
  • Width: larghezza del controllo.
  • Attributes: insieme di coppie nome/valore di cui viene eseguito il rendering sul client come attributi. La proprietà Attributes contiene gli attributi impostati in modo dichiarativo che non corrispondono a proprietà (o eventi) del controllo e gli attributi impostati a livello di codice.

WebControl espone inoltre numerosi fogli di stile CSS come proprietà tipizzate in modo sicuro.

Personalizzazione delle proprietà ereditate

Un controllo può effettuare l'override di una proprietà ereditata per personalizzarla. Per eseguire l'override di una proprietà, è necessario effettuare l'override delle relative funzioni di accesso. Nell'esempio riportato di seguito viene illustrato un controllo che deriva da Button ed effettua l'override della proprietà BackColor in modo che il colore di sfondo sia sempre verde.

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
namespace CustomControls
{
public class DerivedButton : Button
  {
   public DerivedButton() : base()
       {
          base.BackColor = Color.Green;
       }
   public override Color BackColor
   {
      get
         {
            return base.BackColor; 
          }
      set
         {
             // Do nothing.
         }
   }

  }
}
[Visual Basic]
Option Explicit
Option Strict

Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Drawing

Namespace CustomControls
   Public Class DerivedButton
      Inherits Button
      
      Public Sub New()
         MyBase.BackColor = Color.Green
      End Sub
      
      Public Overrides Property BackColor() As Color
         Get
            Return MyBase.BackColor
         End Get
         Set
            ' Do nothing.
         End Set
      End Property 
   End Class
End Namespace

È inoltre possibile modificare i metadati per una proprietà effettuando l'override di un attributo o fornendone uno. Nella porzione di codice riportata di seguito viene illustrato come nascondere la proprietà BackColor dal visualizzatore proprietà di una finestra di progettazione, ad esempio Visual Studio .NET, impostando BrowsableAttribute su false.

[Browsable(false)]
public override Color BackColor{...}
[Visual Basic]
<Browsable(False)> _
Public Overrides Property BackColor() As Color
   ...
End Property

Vedere anche

Definizione di una proprietà | Tipi di proprietà | Esempio di proprietà personalizzata