To implement paging in repeater control in .net that to without any post back i.e.asynchronously, can be occurred through the following manner.

Thank you for reading this post, don't forget to subscribe!

The paging is Some thing like the below Structure.

Step 1:

In the aspx page just paste the follow code.
ScriptManager is used for asynchronous paging.

<form id=”form1″ runat=”server”>
<asp:ScriptManager ID=”MainScriptManager” runat=”server” />
<asp:UpdatePanel ID=”pnlHelloWorld” runat=”server”>
<ContentTemplate>
<div>
<asp:Repeater ID=”rptItems” runat=”server”>
<ItemTemplate>
<div>
<div>
<%# DataBinder.Eval(Container.DataItem,”Address”) %>
</div>
<div>
<%# DataBinder.Eval(Container.DataItem, “ProductCategory”)%>
</div>
<div>
<%# DataBinder.Eval(Container.DataItem, “BrandName”)%>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
<div>
<asp:LinkButton ID=”lbPrev” runat=”server” OnCommand=”lbPrev_Command”>Prev </asp:LinkButton>
<asp:Repeater ID=”rptPages” runat=”server”>
<ItemTemplate>
<div style=”float:left;padding-left:10px;”>
<asp:LinkButton ID=”btnPage” CommandName=”Page” CommandArgument=”<%#Container.DataItem %>” CssClass=”text” runat=”server”><%# Container.DataItem %>
</asp:LinkButton>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:LinkButton ID=”lbNext” runat=”server” OnCommand=”lbNext_Command”>Next </asp:LinkButton>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>

Step 2:

In the code file this needs to be used and your work is done.

public static int totalPages = 0;
public int PageNumber
{
get
{
if (ViewState[“PageNumber”] != null)
return Convert.ToInt32(ViewState[“PageNumber”]);
else
return 0;
}
set
{
ViewState[“PageNumber”] = value;
}
}

protected override void OnInit(EventArgs e)
{
base.OnInit(e);
rptPages.ItemCommand += new RepeaterCommandEventHandler(rptPages_ItemCommand);
}

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
LoadData();
}

private void LoadData()
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conTest”].ToString());
cn.Open();
SqlDataAdapter da = new SqlDataAdapter(“select BrandName,ProductCategory,Address from  Addresss”, cn); //U can use your query here
DataTable dt = new DataTable();
da.Fill(dt);
cn.Close();

PagedDataSource pgitems = new PagedDataSource();
DataView dv = new DataView(dt);
pgitems.DataSource = dv;

pgitems.AllowPaging = true;
pgitems.PageSize = 10;
pgitems.CurrentPageIndex = PageNumber;
totalPages = pgitems.PageCount – 1;

if (pgitems.PageCount > 1)
{
rptPages.Visible = true;
ArrayList pages = new ArrayList();
for (int i = 0; i < pgitems.PageCount; i++)
pages.Add((i + 1).ToString());
rptPages.DataSource = pages;
rptPages.DataBind();
}
else
rptPages.Visible = false;

rptItems.DataSource = pgitems;
rptItems.DataBind();
}

void rptPages_ItemCommand(object source, RepeaterCommandEventArgs e)
{
PageNumber = Convert.ToInt32(e.CommandArgument) – 1;
LoadData();
}

protected void lbPrev_Command(Object sender, CommandEventArgs e)
{
if (PageNumber == 0)
{
PageNumber = 0;
}
else
{
PageNumber = PageNumber – 1;
}
BindGrid(Category, filterName);
}

protected void lbNext_Command(Object sender, CommandEventArgs e)
{
if (PageNumber == totalPages)
{
PageNumber = totalPages;
}
else
{
PageNumber = PageNumber + 1;
}
BindGrid(Category, filterName);
}

Show 4 Comments

4 Comments

No comments yet. Why don’t you start the discussion?

Comments are closed