LIstviewPagin.ASPX

<asp:ListView ID="_groupListView" runat="server" GroupItemCount="3">

<GroupTemplate>

<tr>

<asp:PlaceHolder runat="server" ID="itemPlaceholder" />

</tr>

</GroupTemplate>

<LayoutTemplate>

<table>

<asp:PlaceHolder ID="groupPlaceholder" runat="server" />

</table>

</LayoutTemplate>

<ItemTemplate>

<td><%#Eval("MaterialPath")%>

</td>

</ItemTemplate>

</asp:ListView>

<asp:DataList ID="dlPaging" runat="server" RepeatDirection="Horizontal" OnItemCommand="dlPaging_ItemCommand1"

OnItemDataBound="dlPaging_ItemDataBound1">

<ItemTemplate>

<asp:LinkButton ID="lnkbtnPaging" runat="server" CommandArgument='<%# Eval("PageIndex") %>'

CommandName="lnkbtnPaging" Text='<%# Eval("PageText") %>'></asp:LinkButton>

</ItemTemplate>

</asp:DataList>

<asp:LinkButton ID="LinkButton1" runat="server" Visible="false" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>

<asp:LinkButton ID="LinkButton2" runat="server" Visible="false" OnClick="LinkButton2_Click">LinkButton</asp:LinkButton>

Code behind

private void BindTheData()

{

db.CommandText = "stored procedure”;

db.CommandType = CommandType.StoredProcedure;

dt = db.ReturnDataTable();

pds.DataSource = dt.DefaultView;

pds.AllowPaging = true;

pds.PageSize = 3;

pds.CurrentPageIndex = CurrentPage;

LinkButton1.Enabled = !pds.IsLastPage;

LinkButton1.Enabled = !pds.IsFirstPage;

_groupListView.DataSource = pds;

_groupListView.DataBind();

doPaging();

}

public int CurrentPage

{

get

{

if (this.ViewState["CurrentPage"] == null)

return 0;

else

return Convert.ToInt16(this.ViewState["CurrentPage"].ToString());

}

set

{

this.ViewState["CurrentPage"] = value;

}

}

private void doPaging()

{

DataTable dt = new DataTable();

dt.Columns.Add("PageIndex");

dt.Columns.Add("PageText");

for (int i = 0; i < pds.PageCount; i++)

{

DataRow dr = dt.NewRow();

dr[0] = i;

dr[1] = i + 1;

dt.Rows.Add(dr);

} dlPaging.DataSource = dt;

dlPaging.DataBind();

}

protected void LinkButton1_Click(object sender, EventArgs e)

{

CurrentPage -= 1;

BindTheData();

}

protected void LinkButton2_Click(object sender, EventArgs e)

{

CurrentPage += 1;

BindTheData();

}

protected void dlPaging_ItemDataBound1(object sender, DataListItemEventArgs e)

{

LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");

if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())

{

lnkbtnPage.Enabled = false;

lnkbtnPage.Font.Bold = true;

}

}

protected void dlPaging_ItemCommand1(object source, DataListCommandEventArgs e)

{

if (e.CommandName.Equals("lnkbtnPaging"))

{

CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());

BindTheData();

}

}