views:

6786

answers:

3

So many different controls to choose from! What are best practices for determining which control to use for displaying data in ASP.NET?

+2  A: 

It all comes down to how you want to layout your data.

If you need to control the layout (like tables versus CSS versus whatever), when use a Repeater or ListView. Between the two, ListView gives you a lot more events and built-in commands for editing, selecting, inserting. Additionally paging and grouping functionality. A Repeater is extremely simple, it repeats a layout with the data. Since you're building the layout by hand, Listview and Repeater require more code.

GridView is an updated DataGrid so there is hardly any reason to use DataGrid. GridView works really well when hooked up to standard ASP.NET datasources, but restricts you to a tabular layout with lots of layout rules. GridView requires less code since you're using a built-in layout.

Joseph Daigle
+28  A: 

It's really about what you trying to achieve

  • Gridview - Limited in design, works like an html table. More in built functionality like edit/update, page, sort. Lots of overhead.

  • DataGrid - Old version of the Gridview. A gridview is a super datagrid.

  • Datalist - more customisable version of the Gridview. Also has some overhead. More manual work as you have to design it yourself.

  • ListView - the new Datalist :). Almost a hybrid of the datalist and gridview where you can use paging and build in Gridview like functionality, but have the freedom of design. One of the new controls in this family

  • Repeater - Very light weight. No built in functionality like Headers, Footers. Has the least overhead.

WebDude
+7  A: 

Everyone else hit it: It Depends.

Now for some specific guidance (expanding upon WebDude's excellent answer above) ...

Does your design fit into a natural spreadsheet or grid view of the data? GridView.

Do you need to display a list or other formatted view of data, possibly with headers and footers, and probably with specific controls and/or formatting for each record of data? (EG, customized links, possibly LinkButtons, or specific edit controls?) Does this display specifically not fit naturally into a spreadsheet or grid view? ListView

If you meet all the criteria of ListView, but you would naturally fit in a grid, you may consider DataList.

I go for Repeater when I just need some basic data iterated with some custom design bits, no headers, no footers, nice and clean.

John Rudy