lunedì 9 aprile 2007

Creare un web custom control - Parte 4

Le proprietà di default e custom

Come ogni controllo, anche il nostro avrà una serie di proprietà, alcune ereditate dalla classe WebControl da cui è derivato, alcune create appositamente. Le proprietà entreranno in gioco in fase di rendering del controllo caratterizzando il codice HTML.

Le proprietà ereditate che gestiremo sono:

ID
Visible
Width
BorderStyle
BorderWidth
BackColor
BorderColor

mentre le nuove proprietà introdotte sono:

Opacity (int)
CssClassMenuOver (string)
CssClassMenu (string)
CssClassToolTip (string)
Selected (int)
Top (Unit)
Left (Unit)
ZIndex (int)
MenuItems (array di elementi di tipo MenuItem)

con MenuItem definito in questo modo:

public struct MenuItem
{
   public string Title;
   public string ToolTip;
   public bool Hidden;
   public string Style;
}

e definisce le caratteristiche di una singola voce di menu.

Quindi al codice della classe è necessario aggiungere le seguenti righe di codice:

#region Properties
private int _opacity = 20;
public int Opacity
   {
      set
      {
         _opacity = value;
         if (_opacity < 0)
            _opacity = 0;
         if (_opacity > 100)
            _opacity = 100;
      }
      get
      {
         return _opacity;
      }
   }
   private MenuItem[] _menuitems;
   public MenuItem[] MenuItems
   {
      set
      {
         _menuitems = value;
      }
      get
      {
         return (_menuitems);
      }
   }
   private string _cssclassmenuover;
   public string CssClassMenuOver
   {
      set
      {
         _cssclassmenuover = value;
      }
      get
      {
         return _cssclassmenuover;
      }
   }
   private string _cssclassmenu;
   public string CssClassMenu
   {
      set
      {
         _cssclassmenu = value;
      }
      get
      {
         return _cssclassmenu;
      }
   }
   private string _cssclasstooltip;
   public string CssClassToolTip
   {
      set
      {
         _cssclasstooltip = value;
      }
      get
      {
         return _cssclasstooltip;
      }
   }
   private int _selected;
   public int Selected
   {
      set
      {
         _selected = value;
      }
      get
      {
         return _selected;
      }
   }
   private Unit _top = 0;
   public Unit Top
   {
      set
      {
         _top = value;
      }
      get
      {
         return _top;
      }
   }
   private Unit _left = 0;
   public Unit Left
   {
      set
      {
         _left = value;
      }
      get
      {
         return _left;
      }
   }
   private int _zindex = 0;
   public int ZIndex
   {
      set
      {
         _zindex = value;
      }
      get
      {
         return _zindex;
      }
   }
#endregion

Nota: siccome abbiamo definito delle proprietà e delle variabili di tipo Unit è necessario includere anche il namespace System.Web.UI.WebControls aggiungendo in testa del file della classe la seguente riga di codice:

using System.Web.UI.WebControls;

Nessun commento: