In ASP.NET there are several controls to present data in a web page. Some of the popular data controls are GridView, ListView, DetailsView, FormView, Repeater or SQLDataSource. If you will notice in the recent versions of Visual Studio you will watch DataPager as a Data Control. Like a Gridview using DataPager Control we can present data in tabular shape. Look at the example below where I am binding data to a DataPager control inside a ListView Control.
To enable users to page through data in a ListView control or a control which implements IPageableItemContainer interface, we can use DataPager control in ASP.NET. While declaring a DataPager Control declare it inside LayoutTemplate. If your DataPager Control is not inside the ListView control then you need to set PagedControlID property value to ListView control ID.
ListView from Default.aspx
<asp:ListView ID="lvEmployees" runat="server" GroupPlaceholderID="grpPlaceHoder" ItemPlaceholderID="itemPlaceHolder" OnPagePropertiesChanging="OnPropertiesChanging"> <LayoutTemplate> <table cellpadding="0" cellspacing="0"> <tr> <th>Emp ID</th> <th>Emp Name</th> <th>Status</th> </tr> <asp:PlaceHolder runat="server" ID="grpPlaceHoder"></asp:PlaceHolder> <tr> <td colspan="3"> <asp:DataPager ID="dpager" runat="server" PagedControlID="lvEmployees" PageSize="10"> <Fields> <asp:NextPreviousPagerField ButtonType="Link" ShowFirstPageButton="false" ShowPreviousPageButton="true" ShowNextPageButton="false" /> <asp:NumericPagerField ButtonType="Link" /> <asp:NextPreviousPagerField ButtonType="Link" ShowNextPageButton="true" ShowLastPageButton="false" ShowPreviousPageButton="false" /> </Fields> </asp:DataPager> </td> </tr> </table> </LayoutTemplate> <GroupTemplate> <tr> <asp:PlaceHolder runat="server" ID="itemPlaceHolder"></asp:PlaceHolder> </tr> </GroupTemplate> <ItemTemplate> <td><%# Eval("ID")%></td> <td><%# Eval("Name")%></td> <td><%# Eval("Status") %></td> </ItemTemplate> </asp:ListView>
Code-behind Default.aspx.vb
Imports System.IO Imports System.Data.OleDb Imports System.Data Partial Class _Default Inherits System.Web.UI.Page Dim FilePath As String = "C:\Users\biswabhusan_panda\Documents\Visual Studio 2013\WebSites\ExcelApp\Files\temp.xlsx" Dim Extension As String = ".xlsx" Dim ConStr As String = ConfigurationManager.ConnectionStrings("ConnString").ConnectionString() Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Me.IsPostBack Then Me.BindListView(FilePath, Extension) End If End Sub Protected Sub OnPropertiesChanging(sender As Object, e As PagePropertiesChangingEventArgs) TryCast(lvEmployees.FindControl("dpager"), DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, False) Me.BindListView(FilePath, Extension) End Sub Private Sub BindListView(ByVal FilePath As String, ByVal Extension As String) ConStr = String.Format(ConStr, FilePath) Dim connExcel As New OleDbConnection(ConStr) Dim cmdExcel As New OleDbCommand() Dim oda As New OleDbDataAdapter() Dim dtbl As New DataTable() cmdExcel.Connection = connExcel 'Get the name of First Sheet connExcel.Open() Dim dtExcelSchema As DataTable dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) Dim SheetName As String = dtExcelSchema.Rows(0)("TABLE_NAME").ToString() connExcel.Close() 'Read Data from First Sheet connExcel.Open() cmdExcel.CommandText = "SELECT * From [" & SheetName & "]" oda.SelectCommand = cmdExcel oda.Fill(dtbl) connExcel.Close() 'Bind Data to GridView lvEmployees.DataSource = dtbl lvEmployees.DataBind() End Sub End Class