CompositeControl

Innovazione del Framework 2.0, questo tipo di controlli permette di creare controlli complessi costituiti da più controlli semplici. Il paradigma su cui si fondano è la composizione rispetto alla tradizionale renderizzazione.

E' per questo che sarebbe meglio non sovrascrivere il Render() se non per particolari necessità.

Oltre che ereditare da CompositeControl e creare il designer opportuno (che eredita da CompositeControlDesigner), sarà necessario sovrascrivere la collection dei Controls e ogni proprietà che opera sui controlli sottostanti richiamando EnsureChildControls() che forza la creazione dei controlli se non già presente.

Nella CreateChildControls() occorre chiamare una Clear() sui controlli presenti, creare i nuovi controlli e impostare a true la variabile ChildControlsCreated. Mi raccomando, quando aggiungere i controlli alla collection dei Controls, inseriteli il prima possibile, prima ancora di settare le prime proprietà. In questo modo subito verrà tutto tracciato nel ViewState.

Tutte le immagini del controllo è preferibile siano compilate come embeddedResource.

L'utilità di questo tipo di controlli è basata sul poter utilizzare direttamente i controlli contenuti e le loro proprietà. Non è necessario implementare l'interfaccia INamingContainer (poichè già trattata dai CompositeControl).


Technorati tags:

Print | posted @ sabato 22 settembre 2007 21:26

Comments have been closed on this topic.