Reputation: 1702
I am using below event for adding numbers to the list item pages
protected void lnkprev_Click(object sender, EventArgs e)
{
List<ListItem> pages = new List<ListItem>();
int pagecount = Convert.ToInt32(Session["pagecount"].ToString());
int lastnumber = Convert.ToInt32(Session["lastnumber"].ToString());
int limit = lastnumber - 5;
for (int i = limit; i <= pagecount; i++)
{
if (i < lastnumber && i > 1)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex));
}
else
{
rptPager.DataSource = Session["orignalpages"];
rptPager.DataBind();
}
}
Session["lastnumber"] = limit;
Session["pagecount"] = pagecount;
Session["pages"] = pages;
rptPager.DataSource = pages;
rptPager.DataBind();
}
It works like if the last number is 45 then it generates 40 41 42 43 44 45. Now the issue if last number contains 6 or < 5 or even negative numbers, it should bind repeater with Session["orignalpages"]; which contains 1 2 3 4 5... The above code doesn't work this way. It adds negative numbers to the list items. Please help me !!!
Upvotes: 0
Views: 82
Reputation: 777
Hi maybe i am misundersting your question but you said like if last number contains 6 or < 5 or even negative numbers, it should bind repeater with Session["orignalpages"];
then shouldn't your logic is to be like this :-
if (lastnumber <= 6)
{
for (int i = limit; i <= pagecount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex));
}
}
else
{
rptPager.DataSource = Session["orignalpages"];
rptPager.DataBind();
}
Upvotes: 1
Reputation: 161
Your limit is lower then 1 so you had to set it explicit to 1.
protected void lnkprev_Click(object sender, EventArgs e)
{
List<ListItem> pages = new List<ListItem>();
int pagecount = Convert.ToInt32(Session["pagecount"].ToString());
int lastnumber = Convert.ToInt32(Session["lastnumber"].ToString());
int limit = lastnumber - 5;
//////////////////////////////////////////////////////
if (limit < 1) limit = 1; //set the limit explicit to 1
//////////////////////////////////////////////////////
for (int i = limit; i <= pagecount; i++)
{
if (i < lastnumber && i > 1)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != PageIndex));
}
else
{
rptPager.DataSource = Session["orignalpages"];
rptPager.DataBind();
}
}
Session["lastnumber"] = limit;
Session["pagecount"] = pagecount;
Session["pages"] = pages;
rptPager.DataSource = pages;
rptPager.DataBind();
}
Upvotes: 1