Videli ste na nekim sajtovima Prethodni/Naredni linkove za prelazak sa srtane na stranu.
Negde su to brojevi pa mozete da idete direktno na stranicu koju zelite, ovde se sve desava sekvencijalno.
Posto je meni bas to sekvencijalno trebalo, napisao sam jednu f-ju koja radi upravo to...
Da bi je koristili za vase potrebe, poterbno je da izmenite SQL upit i mozda jos neke sitnice (ili da nista ne menjate, a da sve nazovete kako sam i ja nazvao ).
Ova f-ja se oslanja na ovu klasu
public void DisplayNavigation()
{
const int pageSize = 7; // Broj zapisa po strani
int currentPage = Convert.ToInt32(Request.QueryString["Page"]); // Tekuca strana
string pageName = Request.QueryString["PageName"];
#region Glavna strana - navigacija
if (pageName == null)
{
string RedirectPage = "Default.aspx";
MSSqlConn s = new MSSqlConn();
s.OpenConn("SELECT Count(id) AS brVesti FROM tblNews;");
s.dr.Read();
double pageTotal = Math.Ceiling(Convert.ToInt32(s.dr["brVesti"]) / pageSize);
s.CloseConn();
Response.Write(@"<table width='100%' border='0' cellpadding='2' cellspacing='2'>
<tr>");
if (Request.QueryString["Page"] == null || currentPage == 1)
{
// Posto smo na prvoj strani, nema povratka nazad.
Response.Write(@"<td width='14%' height='25'>« Previous</td>");
Response.Write(@"<td width='72%' align='center'>Page " + currentPage + " of " + pageTotal + @" </td>");
if (pageTotal >= 2)
{
// Kada smo na prvoj strani, mozemo ici samo napred.
Response.Write(@"<td width='14%' align='right'><a href='" + RedirectPage + @"?Page=2' class='StandardLink'>Next » </a></td>");
}
else
{
// Ako smo dovde dosli, znaci da smo i dalje na prvoj strani.
Response.Write(@"<td width='14%' align='right'>Next »</td>");
}
}
else
{
// Ovde smo odmakli od pocetka.
Response.Write(@"<td width='14%' height='25'><a href='" + RedirectPage + @"?Page=" + (currentPage - 1) + "' class='StandardLink'>« </a><a href='#' class='StandardLink'>Previous</a></td>");
if (pageTotal > currentPage)
{
Response.Write(@"<td width='14%' align='right'><a href='" + RedirectPage + @"?Page=" + currentPage + 1 + "' class='StandardLink'>Next » </a></td>");
}
else
{
Response.Write(@"<td width='14%' align='right'>Next »</td>");
}
}
// <td width='14%' height='25'><a href='#' class='StandardLink'>« </a><a href='#' class='StandardLink'>Previous</a></td>
// <td width='72%' align='center'>Page @" + currentPage + " of " + pageTotal + @" </td>
// <td width='14%' align='right'><a href='#' class='StandardLink'>Next » </a></td>
Response.Write(@"</tr></table>");
}
#endregion
}
Ako imate samo 7 zapisa (za ovaj slucaj) ni Previous ni Next nece biti linkovani tj. necete moci kliknuti na njih.
Ako imate zapisa za dve strane, a vi se nalazite na prvoj, Next ce biti linkovan, a Previous nece, a ako ste na trecoj strani, a imate 10 strana, i Previous i Next ce biti linkovani. Itd.
Nadam se da ce vam ovo posluziti kao sto je meni posluzilo.
if (any_questions)
{
MessageBox.Show("Feel free to ask...");
}
|