Home > ASP.NET > Asp.net User Control proprietà Visible considerazioni

Asp.net User Control proprietà Visible considerazioni

In Asp.Net per evitare la visualizzazione di uno User Control si può far ricorso alla proprietà Visible. La proprietà tuttavia non ferma l’elaborazione del codice posto all’interno del controllo. Infatti il codice degli eventi Init e Load verrà avviato in tutti i controlli indipendentemente che questi siano visibili o meno. Quindi se ad esempio il controllo in questione effettua anche chiamate ad un database queste vengono comunque eseguite. Per contenere il carico di elaborazione si può:

  • porre la grande parte del codice nell’evento PreRender che viene eseguito solo qualora il controllo sia Visibile
  • provare a bloccare l’esecuzione del codice ad esempio ponendolo sotto il controllo di una struttura di tipo if

Eseguire il codice solo se il controllo risutla visibile

void Page_Load(Object sender, EventArgs e)
 {
    if (This.Visible )   {  
        //esegui codice    
        ...
        ... 
     } 
 }

oppure definendo una nuova proprietà di tipo bool (es. Processa ) per il controllo

file .aspx o .master

<portal:header ID="Header"  Visible="false" Processa="false"  runat="server" />

file .ascx

    public bool Processa = true  ; 

     void Page_Load(Object sender, EventArgs e)
     {
        if ( Processa )   {  
           //esegui codice    
           ...
           ... 
          } 
    }

UserControl Definire una nuova proprietà

Una definizione più adeguata della nuova proprietà per il controllo è comunque la seguente

   public bool Processa { 
       get; 
       set; 
   }

oppure

   bool _Processa  = false;
   // public bool Processa { get; set; }
   public bool Processa 
   {
       get { return _Processa; }
       set { _Processa = value; }
   }
   void Page_Load(Object sender, EventArgs e)
     {
        if ( _Processa )   {  
           //esegui codice    
           ...
           ... 
          } 
    }

la definizione essenziale usata per la property del primo esempio comporta la visualizzazione nel IDE del messaggio

Message x Validation (ASP.Net): Attribute ‘Processa’ is not a valid attribute of element xxx. 

Codice in PreRender_Page

p.s. Questo consentirà di aumentare anche la velocità di esecuzione.

Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: