Comparing ListView with GridView,DataList and Repeater
The ListView control is a new data presentation control that was added in ASP.Net 3.5.You may wonder why its added to the framework , and what it provide .
From what i have seen, ListView control was added to provide The following functionalities :
- A very flexible and customizable layout.
- A built in data paging support with the new DataPager control.
- Support data grouping (repeating items) in a flexible way.
- Built in support for deleting,inserting,paging,sorting,and updating the data.
Now , to compare the ListView control with the dataList,GridView and repeater control , lets look at the table below :
Supported Funcationalities | ||||||
Control | Paging | Data Grouping | Provide Flexible Layout | Update,Delete | Insert | Sorting |
ListView | supported | supported | supported | supported | supported | supported |
GridView | supported | Not supported | Not Supported | supported | Not Supported | supported |
DataList | Not supported | supported | supported | Not supported | Not supported | Not supported |
Repeater | Not supported | Not supported | supported | Not supported | Not supported | Not supported |
* Supported: means that it's provided out of the box without any custom code or hacks.
* Not Supported: means that it's not provided out of the box by the control but it could be possible to implement it using custom code \ hacks.
The GridView : it supports paging but it doesn't provide a flexible layout , since its mainly used to display the data in a table based layout.And If we looked at data inserting , the Gridview doesn't have a built in support for inserting data( since it doesn't call the insert method of it underlying data source when you click on a button with a CommadName set to "Insert" ).
The DataList : it support data grouping ( through its RepeatColumns property) , but it doesn't have a built in support for paging,inserting ,deleting , updating the data. and if you looked at its laout , you will find that by default the datalist renders as html table and you will have to set its flowLayout to "Flow" to stop that behaviour.
The Repeater control : you will find that it provides a flexible layout but it doesn't support data grouping ,inserting,deleting , updating and paging through the data .
Summary :
The ListView control was added to provide a rich data control that can support all the required functionalities at the same time , so now you can easily display a fully customizable layout that supports Grouping,paging , inserting , deleting , updating and sorting the data.
Anas Ghanem