페이지 매김 링크를 생성하는 데 사용해야하는 코드는 주로 ASP.NET을 기반으로하는 기술에 따라 다릅니다. ASP.NET MVC, Web Forms 용 다른 코드 및 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
이 많이 있지만, 모든 사례를 올바르게 파악하기가 어려울 수 있으므로보다 세련된 접근 방식이 될 수 있습니다. 특정 기술에 바인딩하는 것은 아마도 다른 질문에 대한 주제 일 것입니다.
, 그림이 표시되지 않습니다. –
링크 된 페이지는 5/40 페이지의 내용은 무엇입니까? – Sijin
40 개 중 5 개는 1, 2, 3, 4, [5], 6, 7 ... 39, 40이됩니다 (처음 두 개는 항상 표시되고 마지막 두 개는 항상 표시되며 바로 인접한 두 개가 항상 표시됩니다.) – alpheus