Я новичок здесь
У меня та же проблема, что и у Маркуса в здесь
пейджинг, который я пытаюсь сделать, должен выглядеть примерно так:
1 2 3 4 5 6 ... 101
Когда я нажимаю на цифру 5, мне бы хотелось, чтобы отображались такие цифры:
1 ... 3 4 5 6 7 ... 101
когда я нахожусь на последней паре страниц, я хочу, чтобы это выглядело как первая:
1 ... 96 97 98 99 100 101
Жирным шрифтом является страница, которую вы просматриваете в настоящее время.
Я хочу, чтобы точки отображались толькоесли доступно более 7 страниц, в противном случае он должен выглядеть как обычный пейджинг:
1 2 3 4 5 6 7
вместоон выделен жирным шрифтом, я добавил несколько CSS-кодов в него ..
мой оригинальный код выглядит примерно так ...
if (ListCount > ListPerPage)
{
if (Currentpage > PageCount)
{
Response.Redirect(Request.Path + "/?p=" + PageCount);
}
html += "<ul class=\"productListPaging\">";
for (int x = 1; x <= PageCount; x++)
{
if (x == Currentpage)
{
html += "<li class=\"active\">";
}
else
{
html += "<li>";
}
html += "<a href=\"javascript:void(0);\" onclick=\"changePage(" + x + ");\">";
html += x;
html += "</a> ";
html += "</li> ";
}
html += "</ul>";
}
этот код отображает все страницы, а не группирует их.Я изменил код выше, но он отображает только первыйи последние страницы, например, если у меня есть 10 страниц, отображаются только страницы 1 и 10, а не 1 2 3 ... 10
Любая помощь будет принята с благодарностью ..
Спасибо
Йохан
Решен алгоритм
int before = 2;
int after = 2;
for (int x = 1; x <= Pagecount; x++)
{
if (x == CurrentPage)
{
if (x == Pagecount)
{
html += "";
}
else
{
html += "<li class=\"active\">";
#region Page Loop #
html += "<a href=\"" + Url;
html += querypage + x;
if (sortid != "")
{
html += querysort;
}
if (viewtype != "")
{
html += queryviews;
}
if (pricing != 0)
{
html += queryrange;
}
html += "\" >";
html += x;
html += "</a> ";
#endregion
html += "</li>";
}
}
else if (x < CurrentPage - before)
{
if (befli == 0)
{
html += "<li class=\"dotdotdot\">";
html += "<a href=\"#\">...</a>";
html += "</li>";
befli++;
}
}
else if (x > CurrentPage - before && x < CurrentPage + after)
{
if (x == Pagecount)
{
html += "";
}
else
{
html += "<li>";
#region Page Loop #
html += "<a href=\"" + Url;
html += querypage + x;
if (sortid != "")
{
html += querysort;
}
if (viewtype != "")
{
html += queryviews;
}
if (pricing != 0)
{
html += queryrange;
}
html += "\" >";
html += x;
html += "</a> ";
#endregion
html += "</li>";
}
}
else if (x > CurrentPage + after)
{
if (aftli == 0)
{
html += "<li class=\"dotdotdot\">";
html += "<a href=\"#\">...</a>";
html += "</li>";
aftli++;
}
}
else if (x == Pagecount)
{
html += "";
}
}
Требуется только для вычисления цикла for с использованием большего или меньшего
Ok the Logic
'
int Before = #How Many Items Before Selected Number
int After = #How Many Items After Selected Number
int PageCount = #How Many Pages
int CurrentPage = #Current Page
//First Page
if (PageCount > 1)
{
// Here For Page Set Static 1
}
//Previous Button
if (CurrentPage != 1)
{
//Code Here (CurrentPage - 1)
}
for loop
for(int x = 1; x < PageCount; x++)
{
if (x == 1)
{
Page 1 //Static Page 1
if (x == CurrentPage)
{
//Bold Font / Highlight
}
else
{
//Normal
}
}
else if ( x == CurrentPage)
{
if(x == PageCount)
{
//None
}
else
{
//Bold Font / Highlight
}
}
else if (x < CurrentPage - Before)
{
// . . .
}
else if (x > CurrentPage - Before && x < CurrentPage + After)
{
if(x == PageCount)
{
//None
}
else
{
//Normal Font
}
}
else if (x > CurrentPage + After)
{
// . . .
}
else if (x == PageCount)
{
if (x == CurrentPage)
{
//Bold Highlight
}
else
{
//Normal
}
}
}
//Next Button
if (CurrentPage != PageCount)
{
//Code Here (CurrentPage + 1)
}
//First Page
if (PageCount > 1)
{
// Here For Page Set Static Last Page
}
'
Надеюсь, что моя логика помогает другим пользователям, которым необходимо использовать разбиение на страницы для циклов.
Йохан