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.

Annunci

Awesome modificare le combinazioni di tasti

Aw_64  Awesome è un windows manager per certi aspetti minimalista ma che consente di massimizzare lo spazio disponibilesullo schermo, permette di gestire un numero veramente elevato di finestre in modo efficace e e se si ha un po’ di pazienza offre grandi possibilità di personalizzazione. Tutte le finestre sono scontornate pertanto risulta decisivo disporre di combinazioni di tasti per avviare programmi e attività direttamente da tastiera.

awesome dual monitor screenshoot

awesome dual monitor screenshot

Per modificare le impostazioni di awesome si deve agire sul file di configurazione rc.lua.

In ubuntu 12.xx il file si trova in

/etc/xdg/awesome/rc.lua

Poichè awesome è molto sensibile agli errori conviene prima di riavviare con la combinazione( [Mod4] anche conosciuto con [Windows logo] + R ) fare un check del file rc.lua salvato con awesome -k
Nel file di confiurazione Mod4 è rappresentato dalla variabile modkey.

la sezione relativa ai key bindings combinazioni da tastiera inizia con queste righe

-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
    awful.button({ }, 3, function () mymainmenu:toggle() end),
    awful.button({ }, 4, awful.tag.viewnext),
    awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}

-- {{{ Key bindings
globalkeys = awful.util.table.join(
    awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),
    awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),
    ....

L’istruzione per richiamare premendo [winlogo]+[w] il menu

    awful.key({ modkey,           }, "w", function () mymainmenu:show({keygrabber=true}) end),

di seguito una combinazione di tasti personalizzata [Control]+[Escape] per richiamare il menu ma in maniera on/off

    awful.key({ "Control",    }, "Escape", function () mymainmenu:toggle() end),

Altro esempio
una combinazione di tasti [mod4]+[Shift]+s per realizzazione uno screenshot di tipo finestra con scrot e salvarlo nel file screenshot.png

    awful.key({ modkey, "Shift"  }, "s", function () awful.util.spawn("terminator" .. " " .. "--geometry=5x5  -x scrot -s screenshotawe.png"  ) end),

altra comnbinazione di tasti [mod4]+[mod1]+s per salvare uno scrrenshot e inviare l’immagine a imagemagick utilizzano uno script per visualizzarlo direttamente ed eventualmente modficarlo

    awful.key({ modkey, "Mod1" }, "s", function () awful.util.spawn("terminator" .. " --geometry=5x5  -e /home/maurizio/.scripts/screenshot.sh"  ) end),

Altro esempio combinazione di tasti per modificare il layout dello schermo

    awful.key({ "Control", "Mod1"  }, "1", function () awful.layout.inc(layouts, -9+1) end),

Di seguito le combinazione di default presenti in awesome

Window Manager Control

  • Restart awesome:   Mod4 + control + r
  • Quit awesome: Mod4 + shift + q
  • Apre menu principale:
    • Mod4  + w   ( :show menu)
    • Mouse tasto destro (:toggle cioè on/off )
  • Selezionare uno specifico tag 1-9 : Mod4  + 1-9  (numero tag io li definisco impropriamente screen )
  • Spostare la finestra attiva nel tag screen specificato dal numero:  Mod 4  + Shift + 1-9
  • Riunire  le finestre presenti nei tag o screens dei numeri specificati: Mod4  + Control + 1-9 
  •  è possibile selezionare e quindi  riunire  tutti i 9 screen
  • Finestre Attive:  mouse tasto destro su tag name
  • apre il terminale: Mod4 + Return
  • Run prompt:  Mod4 + r    (appare un piccolo prompt in alto a destra subito dopo i 9 tags )
  • run Lua code prompt: Mod4 + x

Clients

  • Redraw finestra con focus = Mod4 + shift + r
  • Massimizza client = Mod4 + m  ( on / off )
  • Minimizza client = Mod4 + n
  • Restore client = Mod4 + control + n
  • Pieno schermo client =  Mod4 + f   ( on / off )
  • Kill focused client = Mod4 + shift + c
  • Avanti  (on -top ) client = Mod4 + t
  • Ridimensionare finestre affiancate   Mod4 e tastro dx mouse e trascinare
  • Spostare e scambiare finestre Mod4 e tasto sx mouse

Navigation

  • Successivo client ( seleziona )  =   Mod4 + j
  • Precedente client ( seleziona )  = Mod4 + k
  • First urgent client (seleziona )  = Mod4 + u
  • Precente tag ( seleziona ) = Mod4 + freccia sn
  • Successivo tag ( seleziona ) = Mod4 + freccia dx
  • Passare ai tag 1-9 = Mod4 + 1-9
  • Successivo screen focus = Mod4 + control + j
  • Precedente screen focus = Mod4 + control + k
  • Precedente tag selezionato =  Mod4 + Escape

Modificazioni Layout

  • cambia Layout organizzazione dei tags delle windows = Mod4 + bar space e Mod4 + Shift + bar space
  • Switch client con client successivo = Mod4 + shift + j
  • Switch client con client precedente = Mod4 + shift + j
  • Send client
  • Toggle tag view = Mod4 + control + 1-9

Risorse: