문제

나는 stackoverflow 호출기와 마찬가지로 ASP.net에서 괜찮은 페이징 컨트롤을 찾고 있습니다. 누구든지 추천 할 수 있습니까?

나는 포스트백을 사용하지 않은 것을 선호합니다.

도움이 되었습니까?

해결책 2

나는 더 많은 답변을 기대하고 있었지만 많은 사람들이 스스로 만드는 것처럼 보입니다. 나는 자주 유지되는 괜찮은 것을 발견했습니다. codeproject.com

cp

stackoverflow.com과는 다릅니다. 다양한 출력 옵션이있는 괜찮은 오픈 소스 컨트롤이 있으면 좋을 것입니다.

다른 팁

직접 굴리는 것은 매우 쉽습니다. 두 가지 속성으로 스택 오버플로 호출기를 기반으로 간단한 사용자 컨트롤을 만들었습니다 ...

  1. 기본 데이터에 따라 사용 가능한 총 페이지 수
  2. 보여줄 링크 수

선택한 페이지는 쿼리 문자열을 읽음으로써 결정됩니다. 가장 큰 과제는 새로운 페이지 번호로 URL을 변경하는 것이 었습니다. 이 메소드는 쿼리 문자열 매개 변수 'p'를 사용하여 표시 할 페이지를 지정합니다 ...

string getLink(int toPage)
{
    NameValueCollection query = HttpUtility.ParseQueryString(Request.Url.Query);
    query["p"] = toPage.ToString();

    string url = Request.Path;

    for(int i = 0; i < query.Count; i++)
    {
        url += string.Format("{0}{1}={2}", 
            i == 0 ? "?" : "&", 
            query.Keys[i], 
            string.Join(",", query.GetValues(i)));
    }

    return url;
}

표시 할 페이지 번호의 범위를 결정하는 간단한 공식 ...

int min = Math.Min(Math.Max(0, Selected - (PageLinksToShow / 2)), Math.Max(0, PageCount - PageLinksToShow + 1));
int max = Math.Min(PageCount, min + PageLinksToShow);

그런 다음 각 링크는 (Min과 Max가 작성할 페이지 링크 범위를 지정하는 곳)와 같은 것을 사용하여 생성됩니다 ... ...

for (int i = min; i <= max; i++)
{
    HyperLink btn = new HyperLink();
    btn.Text = (i + 1).ToString();
    btn.NavigateUrl = getLink(i);
    btn.CssClass = "pageNumbers" + (Selected == i ? " current" : string.Empty);
    this.Controls.Add(btn);
}

'이전'(및 'Next') 버튼을 만들 수도 있습니다 ...

HyperLink previous = new HyperLink();
previous.Text = "Previous";
previous.NavigateUrl = getLink(Selected - 1);

첫 번째와 마지막 버튼은 간단합니다 ...

HyperLink previous = new HyperLink();
previous.Text = "1";
first.NavigateUrl = getLink(0);

"..."를 표시 할시기를 결정할 때 링크 범위가 첫 페이지 또는 마지막 페이지 옆에 있지 않을 때 문자 그대로 컨트롤을 표시하십시오 ...

if (min > 0)
{
    Literal spacer = new Literal();
    spacer.Text = "&hellip;";
    this.Controls.Add(spacer);
}

"max <pagecount"에 대해서도 동일하게 수행하십시오.

이 모든 코드는 CreateChildControls의 재정의 메소드에 넣습니다.

DeVexpress 및 Telerik 페이지 컨트롤과 함께 일했으며 Devexpress 호출기를 선호합니다. 난 아니에요 확실한 DeVexpress 호출기가 쿼리 스트링과 직접 작동 할 수 있지만 매우 유연하지 않으면 놀랄 것입니다. 다운로드 후 기존 페이지간에 페이징하는 한 모든 것이 클라이언트에 상주 할 수 있거나 서버로의 여행이 필요한 경우 컨트롤이 완전히 장착되어 있습니다. www.devexpress.com에서 검색을 시작한 다음 www.telerik.com (Ajax 장착)도 확인하는 것이 좋습니다.

컨트롤은 아니지만 이것이 DB 레벨에서 페이징을 구현하는 방법입니다. SQL Server 2005 페이징

나는 Plexy Pager라는 이름의 호출기 컨트롤을 작성했습니다.
더 읽기 : http://www.codeproject.com/articles/748270/flexy-pager-for-asp-net-webform-mvc

enter image description here

당신은 시도 할 수 있습니다 NPAGER. 페이지 인덱스에 쿼리 문자열을 사용합니다. 스타일링을위한 부트 스트랩이 필요하지만 'Pagination'CSS 클래스를 사용하여 컨트롤을위한 자신의 커스텀 CSS 클래스를 가질 수 있습니다. 데모

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top