Wie Paginierung und Filterung in MVC-Anwendungen zu tun
-
05-07-2019 - |
Frage
Ich habe das gleiche Problem wie diese Post aber die beantworten tut nicht arbeiten.... Keine Überlast für die Methode ‚Pager‘ nimmt ‚4‘ Argumente Bin ich mit alten MVCContrib oder die Antwort ist veraltet?
mein Code sieht wie folgt aus: in Controller
public ActionResult Index(int? clubid,int? page)
{
List<aspnet_Users> memberList = new List<aspnet_Users>();
IEnumerable enumerable;
if (!clubid.HasValue)
{
enumerable = aspnet_Users.Find(User.Identity.Name).Club != null ? aspnet_Users.FindAllByClubId(aspnet_Users.Find(User.Identity.Name).Club.Id) : aspnet_Users.FindAll();
}
else
{
if (clubid == 0)
{
enumerable = aspnet_Users.FindAll();
}
else
{
enumerable = aspnet_Users.FindAllByClubId(clubid.Value);
}
}
ViewData["clubid"] = clubid;
foreach (aspnet_Users member in enumerable)
{
memberList.Add(member);
}
return View(memberList.AsPagination(page ?? 1, 10));
}
im Blick
<h2>Index</h2>
<% using (Html.BeginForm()) {
ArrayList clubs=new ArrayList();
clubs.Add(new Club(0, "Toate"));
clubs.AddRange(Club.FindAll());
%>
<%= Html.DropDownList("ClubId", new SelectList(clubs, "Id", "Name", (Model == null ? 0 : aspnet_Users.Find(Page.User.Identity.Name).Club != null ? aspnet_Users.Find(Page.User.Identity.Name).Club.Id : 0)))%>
<input type="submit" value="Filtreaza" />
<% } %>
<table>
<tr>
<th>Action</th>
<th>
UserName
</th>
<th>
Club
</th>
.....
<%=Html.Encode(item.Male?"Male":"Female")%>
</td>
<td>
<%=Html.Encode(item.BirthDay.HasValue?item.BirthDay.Value.ToString(ConfigurationManager.AppSettings["DateFormat"], CultureInfo.InvariantCulture):"")%>
</td>
</tr>
<% }%>
</table> <%= Html.Pager(Model)%>
wenn ich das Ergebnis filtern die clubid mit dem Drop-Down der ausgewählte Wert ändert sich nicht auf den nächsten Seiten übergeben ...
die nächste Seite Link Mitglieder / Index? Page = 2 und ich möchte Mitglieder / Index? Clubid = 1 & page = 2
Ich habe versucht, mit <% = Html.Pager (ViewData.Model.PageSize, ViewData.Model.PageNumber, ViewData.Model.TotalItemCount, new {category = Viewdata [ "clubid"]})%> aber ich bekomme Fehler kompilieren
Keine Überlast für die Methode ‚Pager‘ nimmt '4' Argumente
habe ich überprüft, und ich habe die neueste Version og MvcContrib (1.0.0.916)
Lösung
Nicht sicher, was genau Sie versuchen zu tun -. Vielleicht könnten Sie einen Code schreiben
Das heißt, die MvcContrib Binärdateien von CodePlex verfügbar sind ziemlich veraltet. Insbesondere wird ein deutlich verbessertes Gitter und Paging-Modell. Sie sollten sich die neueste von GitHub packen und Ihre eigene Kopie bauen.