English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ASP.NET MVC4 Razor template simple pagination effect

1. Keine Datenübermittlung

Erster Schritt, einen Controller namens PageIndex erstellen, einen leeren Controller erstellen und eine Methode wie folgt anpassen:   

    public ActionResult PageIndex(string action, string controller, int currentPage, int pageCount)
    }
      //int count = db.Product.Count();
      ViewBag.PageCount = pageCount;//Holen Sie die Gesamtzahl der Datenseiten aus der Aktion und geben Sie sie an die Paginationsansicht weiter
      ViewBag.CurrentPage = currentPage;//Holen Sie die aktuelle Seitennummer aus der Aktion und geben Sie sie an die Paginationsansicht weiter
      ViewBag.action = action;
      ViewBag.controller = controller;
      return PartialView();
    }

Übergeben Sie vier Parameter: 

action:Aktion (die Ansicht der zu paginierenden Aktion, Standard ist Index);

controller:Steuerung;

currentPage:Aktuelle Seitennummer;

pageCount:Gesamtzahl der Seiten der Daten

Schritt 2:Fügen Sie eine Ansicht hinzu (PageIndex)

@if (ViewBag.PageCount == null || ViewBag.PageCount == 0)
    }
      <span>Keine Daten angezeigt, willkommen!</span>/span>
    }
    else
    }
      if (ViewBag.CurrentPage <= 10)
    }
    <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">
    Erste Seite</a>|</span>
    }
  else
  }
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">
    Erste Seite</a>
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage} - 10 }, null)">
    ...</a> </span>
  }
  for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)
  }
    if (i <= 0)
    }
      continue;
    }
    if (i > ViewBag.PageCount)
    }
      break;
    }
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = i }, null)">
    Seite @i</a>|</span>
  }
  if (ViewBag.CurrentPage > 1)
  }
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage} - 1 }, null)">
    Vorherige Seite</a>|</span>
  }
  if (ViewBag.PageCount > ViewBag.CurrentPage)
  }
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage} + 1 }, null)">
    Nächste Seite</a></span>
  }
  if (ViewBag.CurrentPage == ViewBag.PageCount || ViewBag.CurrentPage >= ViewBag.PageCount - 10)
  }
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">
    Letzte Seite</a>
  }
  else
  }
  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage} + 10 }, null)">
    ...</a></span>
  <a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">
    Letzte Seite</a>
  }
  <span style="padding-left: 20px">Aktuelle Seite: @ViewBag.CurrentPage | Insgesamt @ViewBag.PageCount Seiten
  </span>
    }

Dritter Schritt:Ändern Sie den Controller der Ansicht der Aktion

public ViewResult Index(int&63; pageIndex)
    }
      int pageInd = pageIndex.HasValue &&63; pageIndex.Value : 1;
       ViewBag.PageCount = (int)Math.Ceiling(result.Count()) / 20.0);
      //Hier ist take, nach jeder Seite20 angezeigt
      return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));
    }

Schritt 4:Seitenaufruf (d.h. der letzte Schritt)

@Html.Action("PageIndex", "Product", new { action = "Index", controller = "Log", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

Im Allgemeinen ändern sich die Daten. 

Zwei, Daten werden übermittelt

 Schritt 1: Erstellen Sie einen leeren Controller mit dem Namen PageIndex und definieren Sie eine Methode wie folgt: 

    public ActionResult PageIndexKey(int currentPage, int pageCount)
    }
      ViewBag.PageCount = pageCount;//Holen Sie die Gesamtzahl der Datenseiten aus der Aktion und geben Sie sie an die Paginationsansicht weiter
      ViewBag.CurrentPage = currentPage;//Holen Sie die aktuelle Seitennummer aus der Aktion und geben Sie sie an die Paginationsansicht weiter
      return PartialView();
    }

Schritt 2:Erstellen Sie eine verteilte Ansicht

 <script>
  $(function () {
    $("#pageingByForm a").click(function (event) {
      $("#pageIndex").val($(this).attr("pageIndex"));
      //$(this).parent("Form").submit();
      document.getElementsByTagName("Form").item(0).submit();
      event.preventDefault();
    });
  });
</script>
@Html.Hidden("pageIndex")
<div id="pageingByForm">
  @if (ViewBag.PageCount == null || ViewBag.PageCount == 0)
  }
    <span>Keine Daten vorhanden</span>
  }
  else
  }
    if (ViewBag.CurrentPage <= 10)
    }
    <span><a pageindex="1" href="#">Erste Seite</a>|</span>
    }
    else
    }
    <span><a pageindex="1" href="#">Erste Seite</a>|</span>
    <span><a pageIndex="@(ViewBag.CurrentPage - 10)" href="#">...</a>|</span>
    }
    for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)
    }
      if (i <= 0)
      }
        continue;
      }
      if (i > ViewBag.PageCount)
      }
        break;
      }
    <span><a pageIndex="@i" href="#">Seite @i</a>|</span>
    }
    if (ViewBag.CurrentPage >1)
    }
    <span><a pageIndex="@(ViewBag.CurrentPage - 1)" href="#">Vorherige Seite</a>|</span>
    }
    if (ViewBag.PageCount > ViewBag.CurrentPage)
    }
    <span><a pageIndex="@(ViewBag.CurrentPage + 1)" href="#">Nächste Seite</a></span>
    }
    if (ViewBag.CurrentPage >= ViewBag.PageCount - 10)
    }
    }
    else
    }
    <span><a pageIndex="@(ViewBag.CurrentPage + 10)" href="#">...</a>|</span>
    <span><a pageIndex="@ViewBag.PageCount" href="#">Letzte Seite</a></span>
    }
    <span style="padding-left: 20px">Aktuelle Seite: @ViewBag.CurrentPage | Insgesamt @ViewBag.PageCount Seiten
    </span>
  }
</div>

Dritter Schritt:Änderungsansicht und -steuerung

public ViewResult Index(int&63; pageIndex ,string search)
  }
  int pageInd = pageIndex.HasValue &&63; pageIndex.Value : 1;
   ViewBag.PageCount = (int)Math.Ceiling(result.Count()) / 20.0); 
  return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));
  }

Ansicht (Seitenaufruf):
 @using (Html.BeginForm())
} 

Abfrageergebnisse nach Geschlecht erhalten 

Geschlecht: @Html.TextBox("sex")

<input type="submit" value="Abfrage" />  

@Html.Action("PageIndexKey", "PageIndex", new { pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })
 
} 

Beispiel: 

    //Daten, eine Sammlung von Listen 
    List<string> s = new List<string>(); 
      s.Add("张军"); 
      ViewBag.PageCount = (int)Math.Ceiling(s.Count() / 20.0); 
      return View(s.Skip((pageInd - 1) * 20).Take(20)); 
    @Html.Action("PageIndex", "PageIndex", 
    new { action = "", controller = "", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

Das ist der gesamte Inhalt dieses Artikels. Wir hoffen, dass er Ihnen bei Ihrem Lernen hilft und dass Sie die Anrufe-Lehrbuch-Website mehr unterstützen.

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet bezogen und gehört dem Urheberrechtsinhaber. Der Inhalt wurde von Internetbenutzern freiwillig und eigenständig hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie urheberrechtlich geschützte Inhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3Anmerkung: Bitte ersetzen Sie # durch @, wenn Sie eine E-Mail senden, um eine Beschwerde einzureichen, und fügen Sie relevante Beweise bei. Sobald nachgewiesen, wird die Website den fraglichen urheberrechtlichen Inhalt sofort löschen.

You may also like