Frage

Ich bin auf der Suche nach einem anständigen Pagingsteuerstation in ASP.NET, ähnlich wie der Stackoverflow Pager. Kann jemand ein empfehlen?

Ich würde es vorziehen, eine, die nicht Postback hat entweder verwenden, nur eine anpassbare Abfragezeichenfolgeflag.

War es hilfreich?

Lösung 2

Ich hatte erwartet, mehr Antworten, aber es sieht aus wie eine Menge Leute nur ihre eigenen. Ich habe einen anständigen gefunden, die recht häufig auf codeproject.com

cp

Es ist nicht ganz das gleiche wie die stackoverflow.com ein. Es wäre schön, wenn es eine anständige Open-Source-Kontrolle ist, die eine Vielzahl von verschiedenen Ausgabemöglichkeiten hatte.

Andere Tipps

Es ist ganz einfach Ihre eigene Rolle. Ich habe eine einfache Benutzersteuerung basierend auf dem Stapelüberlauf Pager mit zwei Eigenschaften ...

  1. Gesamtzahl der Seiten zur Verfügung gemäß den zugrunde liegenden Daten
  2. Die Anzahl der Verbindungen zeigen

Die ausgewählte Seite wird durch das Lesen der Query-String bestimmt. Die größte Herausforderung war die Änderung der URL mit der neuen Seitennummer. Dieses Verfahren verwendet einen Abfrage-String-Parameter ‚p‘ angeben, welche Seite angezeigt wird ...

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;
}

Eine einfache Formel, um den Bereich von Seitenzahlen zu bestimmen, um zu zeigen, ...

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

Jeder Link dann erzeugt wird, wie etwas mit (wobei min und max den Bereich der Seite Links angeben erstellen) ...

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);
}

Man kann auch schaffen 'Zurück' (und 'Next') Tasten ...

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

Die ersten und letzten Tasten sind gerade nach vorn ...

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

Bei der Bestimmung, wenn das zeigen, „...“, eine wörtliche Steuerung zeigen, wenn der Link-Bereich in den ersten oder letzten Seiten nicht weiter ist ...

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

Machen Sie dasselbe für die oben für "max

All dieses Codes wird in einer Überschreibung Methode Create setzen.

Ich habe mit der DevExpress und Telerik Seite steuert und es vorziehen, die DevExpress Pager gearbeitet. Ich bin nicht sicher , wenn der DevExpress Pager direkt mit einem Abfragezeichenfolgeflag arbeiten kann, aber ich wäre überrascht, wenn es nicht der Fall war, da es sehr flexibel ist. Soweit Paging zwischen bestehenden Seiten nach dem Download, alles kann auf dem Client oder residiert, wenn ein Zugriff auf den Server erforderlich ist, wird die Steuerung vollständig AJAX ausgestattet. Ich schlage vor, Sie Ihre Suche auf www.devexpress.com beginnen und dann schauen Sie in www.Telerik.com als auch (was AJAX ist auch vorhanden).

Ich habe einen Pager Steuer geschrieben genannt: Flexy Pager
Lesen Sie mehr: http: //www.codeproject .com / Artikel / 748.270 / Flexy-Pager-for-ASP-NET-Webformular-MVC

eingeben Bild Beschreibung hier

Sie können versuchen, NPager . Verwendet Query-String für Seitenindizes, keine Postbacks. Braucht Bootstrap für Styling, aber können Sie Ihre eigenen CSS-Klassen für die Steuerung mit ‚Paginierung‘ CSS class.Here haben, ist eine Arbeits DEMO

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top