Poco fa davanti ad un datalist mi sono posto una domanda molto semplice. I controlli datagrid, datalist e repeater come visualizzano la griglia a design-time? come creano quelle righe fittizie? Ho cercato di ascoltare la voce che mi diceva "Pensaci domaniiiiii... Vai a dormireeeeeee..." ma la curiosità era troppa. :)
Reflector alla mano mi sono tuffato nella classe DataGridDesigner e ho scoperto che, in fase di rendering, viene utilizzata la classe DesignTimeData (già il nome mi ha illuminato ;) ). Per la precisione viene invocato il metodo GetDesignTimeDataSource; questo, a sua volta, invoca il metodo CreateDummyDataTable per creare un DataTable e poi lo popola con il numero di record passato come parametro. Infine viene eseguito il databind del controllo e il gioco è fatto. Verificando le altre classi, ho visto che il concetto è lo stesso sia per il repeater che per il datalist.
Ora posso andare a letto più tranquillo. :)
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




Stampa
Download

10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!