Come eseguire l'impaginazione e il filtro nelle applicazioni MVC
-
05-07-2019 - |
Domanda
Ho lo stesso problema di questo post ma la risponde non funziona.... Nessun sovraccarico per il metodo 'Pager' accetta argomenti '4' Sto usando il vecchio MVCContrib o la risposta è obsoleta?
il mio codice è simile al seguente: nel 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));
}
in vista
<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)%>
se filtro il risultato cambiando il clubid con il menu a discesa, il valore selezionato non viene passato alle pagine successive ...
il collegamento alla pagina successiva è Membri / Indice? pagina = 2 e voglio Membri / Indice? clubid = 1 & amp; pagina = 2
Ho provato con <% = Html.Pager (ViewData.Model.PageSize, ViewData.Model.PageNumber, ViewData.Model.TotalItemCount, nuovo {categoryname = ViewData [" clubid "]})% gt &; ma ottengo errori di compilazione
Nessun sovraccarico per il metodo "Cercapersone" Argomenti "4"
Ho controllato e ho l'ultima versione di og mvccontrib (1.0.0.916)
Soluzione
Non sai esattamente cosa stai cercando di fare, forse potresti pubblicare del codice.
Detto questo, i binari MvcContrib disponibili da CodePlex sono piuttosto obsoleti. In particolare, esiste un modello di griglia e paging molto migliorato. Dovresti prendere le ultime novità da GitHub e crearne una tua copia.