Код, который вам нужно использовать для создания ссылок на страницы, во многом зависит от того, какую технологию вы используете на основе ASP.NET. Вам понадобится другой код при использовании ASP.NET MVC, другого кода для веб-форм и другого кода для таких элементов управления, как Repeater
или Grid
.
В любом случае вам необходимо сгенерировать номера страниц для показа. Следующий код показывает, как это сделать, используя LINQ и C# 3.0. Мы сначала создать все диапазоны (начало, вокруг текущей страницы, конец), а затем удалить недопустимые страницы (например, не более + 1) и убедитесь, что каждая страница возвращается только один раз:
// Generate all three ranges
var pages = new[] { 1, 2 }.Concat(
Enumerable.Range(current-2, 5)).Concat(
new[] { max-1, max });
// Filter invalid pages and make sure we return each page only once
pages.Where(n => n >= 1 && n <= max).Distinct();
Вы могли бы написать это с помощью много if
с, но может быть трудно получить все случаи правильно, так что это может быть более элегантный подход. Однако привязка его к конкретной технологии, вероятно, является темой для другого вопроса.
На странице вы связаны, снимки не отображаются. –
0 Что будет со связанными страницами для страницы 5 из 40? – Sijin
Для 5 из 40 ссылки будут следующими: 1, 2, 3, 4, [5], 6, 7 ... 39, 40. (Первые два всегда отображаются, последние два всегда отображаются, и сразу отображаются два соседних друг друга.) – alpheus