settembre 2007 Blog Posts
Sono comode per simulare l'ereditarietà multipla.
Esempio: il padre di un container può essere di tipo Grid o item; per poter castare il parent del container a qualcosa e richiamare un metodo uguale su grid e item, ho dovuto definire una interfaccia generica che prevede il metodo, specificare che grid e item la implementano, castare il parent all'interfaccia e richiamare il metodo.
public interface IGenericElement
{
GenericGrid Grid();
IGenericElement Father();
}
public partial class GenericGrid : System.Web.UI.UserControl, IGenericElement
{
...
public GenericGrid Grid()
{
return this;
}
public IGenericElement Father()
{
return this;
}
...
}
public partial class GenericContainer : System.Web.UI.UserControl, IGenericElement
...
Per serializzare in JSON un oggetto:
System.Web.Script.Serialization.JavaScriptSerializer serializer = new JavaScriptSerializer();
String result = serializer.Serialize(o);
Per avviare un processo (ad esempio aprire il browser all'indirizzo in LinkLabel):
System.Diagnostics.Process.Start(LinkLabel1.Text)
Supponendo di costruire, nel page load, i seguenti controlli html iniettando il testo in un literal
sb = new StringBuilder();
sb.Append("<br/><br/>Sezione CHECKBOX<br/>");
sb.Append("<input name='chk1' type='checkbox' checked=\"checked\" />");
sb.Append("<input name='chk2' type='checkbox' />");
sb.Append("<br/>Sezione INPUT TEXT <input type='text' name='txt1' value='testo predefinito' /><br/>");
sb.Append("<br/>Sezione SELECT ");
sb.Append("<select name='sel1'><option value='1'>voce 1</option><option value='2'>voce 2</option></select>");
litBody.Text = sb.ToString();
è possibile leggere il valore degli stessi con l'istruzione:
Object o = Request.Form.Get("chk1");
e via di seguito con gli altri Name dei controlli.
o conterrà:
"on" per le checkbox selezionate (sarà null per quelle non selezionate perchè non vengono postate)
il testo inserito nelle textbox
il valore associato all'opzione selezionata per le select
NOTA:...