1. Datagrid has paging while Datalist doesnt.
2. Datalist has a property called repeat. Direction = vertical/horizontal. (This is of great help in designing layouts). This is not there in Datagrid.
3. A repeater is used when more intimate control over html generation is required.
4. When only checkboxes/radiobuttons are repeatedly served then a checkboxlist or radiobuttonlist are used as they involve fewer overheads than a Datagrid.
The Repeater repeats a chunk of HTML you write, it has the least functionality of the three. DataList is the next step up from a Repeater; accept you have very little control over the HTML that the control renders. DataList is the first of the three controls that allow you Repeat-Columns horizontally or vertically. Finally, the DataGrid is the motherload. However, instead of working on a row-by-row basis, you’re working on a column-by-column basis. DataGrid caters to sorting and has basic paging for your disposal. Again you have little contro, over the HTML. NOTE: DataList and DataGrid both render as HTML tables by default.
Out of the 3 controls, I use the Repeater the most due to its flexibility w/ HTML. Creating a Pagination scheme isn’t that hard, so I rarely if ever use a DataGrid. Occasionally I like using a DataList because it allows me to easily list out my records in rows of three for instance.
Datagrid is most restrictive as regards to customization followed by DataList and finally Repeater is the most customizable.
Datagrid has built in paging sorting and editingwhich are not there with the other two controls. So if you want users to sort / page / edit data datagrid is the natural choice.
DataList and repeater have better performance than datagrid. So if performance is a major concern for example a site with large number of concurrent visitors then you could think of datalist or repeater.
Repeater is the most customizable. It allows you to create structures like nested lists for example.
A datagrid row displays one record from the data source while a datalist row can display more than one records (set by RepeatColumns property)
Datagrid and Datalist are derived from WebControl while Repeater is not and so does not have the stylistic properties of web controls.
All are similar in that they have a datasource property and ItemCreated ItemDataBound and ItemCommand events.