Potresti anche utilizzare un datalist.
Le proprietà salienti sono ovviamente a livello di binding dati:
datalist.DataSource = <sorgente dati>;
datalistDataBind();
e successivamente nell'evento ItemDataBound vai a valorizzare il contenuto degli oggetti che hai inserito nel datalist (label, gridview, button ecc).