.NET developers can format data using templates and styles in a ListView control. ListView is popular for displaying data in any repeating structure. It is a similar server control to the DataList and Repeater server control. But ListView has more facilities such as the user can edit, update, insert, delete, sort, and even page data. All those are ListView built-in features, so you don't need to code for any one facility.
LisView can data bind with SqlDataSource control using its DataSourceID property. By binding data with data source control we can get its built-in advantage such as paging data, sorting data, inserting, deleting, and editing data.
ListView DataSource property allows us to data bind with many objects such as ADO.NET DataSet and DataReader. But if you use the DataSource property, you need to write code for paging, sorting, editing, etc functionality.
ListView allows .NET developers to display data as individual items or in groups. Developers can define data items by templates. ListView templates are similar to DataList and Repeater control.
If you use a ListView layout template then you need to create a LayoutTemplate. The LayoutTemplate must have the control that acts as a data placeholder. PlaceHolder output each item as defined ItemTemplate. GroupTemplate allows .NET developers to group ListView data.
ListView control used templates are LayoutTemplate, ItemTemplate, ItemSeparatorTemplate, GroupTemplate, GroupSeparatorTemplate, EmptyItemTemplate, EmptyDataTemplate, SelectedItemTemplate, AlternatingItemTemplate, EditItemTemplate, and InsertItemTemplate.
To enable ListView data paging we can use DataPager server control inside LayoutTemplate. EditItemTemplate allows us to edit ListView data and InsertItemTemplate allows us to insert new data.
The following example source code will help you to better understand how ListView works in ASP.NET.
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html>
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ListView control - how to use ListView control in asp.net</title>
<style type="text/css">
.TableCSS
{
border-style:none;
background-color:DarkOrange;
width: 600px;
}
.TableHeader
{
background-color:OrangeRed;
color:Snow;
font-size:large;
font-family:Verdana;
}
.TableData
{
background-color:Orange;
color:Snow;
font-family:Courier New;
font-size:medium;
font-weight:bold;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2 style="color:Navy; font-style:italic;">ListView Control Example: How To Use ListView Control</h2>
<hr width="550" align="left" color="PowderBlue" />
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="Select ProductID, ProductName From products Order By ProductID"
>
</asp:SqlDataSource>
<br />
<asp:ListView
ID="ListView1"
runat="server"
DataSourceID="SqlDataSource1"
>
<LayoutTemplate>
<table runat="server" class="TableCSS">
<tr runat="server" class="TableHeader">
<td runat="server">Product ID</td>
<td runat="server">Product Name</td>
</tr>
<tr id="ItemPlaceholder" runat="server">
</tr>
<tr runat="server">
<td runat="server" colspan="2">
<asp:DataPager ID="DataPager1" runat="server">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Link" />
</Fields>
</asp:DataPager>
</td>
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr class="TableData">
<td>
<asp:Label
ID="Label1"
runat="server"
Text='<%# Eval("ProductID")%>'
>
</asp:Label>
</td>
<td>
<asp:Label
ID="Label2"
runat="server"
Text='<%# Eval("ProductName")%>'
>
</asp:Label>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
</div>
</form>
</body>
</html>