MVC 애플리케이션에서 페이지 매김 및 필터링 방법
-
05-07-2019 - |
문제
나는 이것과 같은 문제가 있습니다 게시하다 하지만 대답 작동하지 않습니다 .... 메소드에 대한 과부하가 'Peager'를 취합니다 '4'인수는 오래된 MVCContrib를 사용하고 있습니까? 아니면 대답이 더 이상 사용되지 않습니까?
내 코드는 다음과 같습니다. 컨트롤러에서
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));
}
관점에서
<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)%>
결과를 필터링하면 드롭 다운으로 클럽을 변경하면 선택한 값이 다음 페이지로 전달되지 않습니다 ...
다음 페이지 링크는 멤버/색인? page = 2이고 회원/색인을 원하십니까? clubid = 1 & page = 2
<%= html.pager (viewData.Model.Pagesize, ViewData.Model.Pagenumber, ViewData.Model.TotalItemCount, new {CategoryName = ViewData [ "ClubId"})%>로 시도했지만 컴파일 오류가 발생합니다.
메소드 'Peager'는 '4'인수에 대한 오버로드가 없습니다.
나는 확인했고 최신 릴리스 OG MVCContrib (1.0.0.916)가 있습니다.
해결책
정확히 무엇을하려고하는지 잘 모르겠습니다. 코드를 게시 할 수 있습니다.
즉, CodePlex에서 구할 수있는 MVCContrib Binaries는 현재 구식이 아닙니다. 구체적으로, 그리드 및 페이징 모델이 훨씬 향상되었습니다. Github에서 최신작을 잡고 자신의 사본을 작성해야합니다.
제휴하지 않습니다 StackOverflow