lunedì 9 aprile 2007

Creare un web custom control - Parte 5

Il metodo Render

Il metodo Render si occupa di generare il codice HTML che rappresenta il controllo in base al valore delle delle proprietà e ad altri parametri come per esempio lo user agent.
Nel nostro caso si tratta di creare un nuovo metodo Render che sovrascriva quello standard del controllo e che si occupi di generare le sequenze di <div>, <table> e <img> che costituiscono il menu secondo la struttura indicata nel secondo articolo.

Il metodo Render non restituisce nessun valore e accetta in ingresso un parametro di tipo HtmlTextWriter.

Il listato del metodo Render è scaricabile qui


Per gestire i differenti meccanismi con i quali i principali browser gestiscono la trasparenza è stata introdotta la funzione opacity così definita:

private string opacity(int x)
{
if (Page.Request.UserAgent.Contains("MSIE"))
{
return "filter:alpha(opacity=" + x.ToString() +");";
}
else
{
string op = ((x + 1000).ToString()).Substring(1);
return "opacity:" + op.Substring(0, 1) + "." + op.Substring(1) + ";";
}
}
Nota: il metodo Render richiama anche dei metodi privati della classe il cui codice sarà presente nel download finale del progetto, ma che adesso è preferibile trascurare per semplicità. Inoltre per il corretto funzionamento di tutto il nuovo codice aggiunto è necessario includere i namespace System e System.Web.UI aggiungendo in testa al listato della classe le righe:

using System;
using System.Web.UI;

oltre ad aggiungere un riferimento agli assembly System.Drawing e System.Web.Extensions:

Nessun commento: