Я использовал это для подкачки списка записей в моем приложении ASP.NET MVC 4: http://demo.taiga.nl/MvcPaging/Paging/ViewByCategory
Я хотел бы добавить раскрывающийся список, чтобы изменить значение размера страницы. При изменении элемента, выбранного в раскрывающемся списке, я бы хотел, чтобы размер страницы изменился. Я не хочу использовать размер страницы по умолчанию.
После просмотра комментариев я сделал следующее в представлении Index.cshtml после элемента <table>
:
<div class="pager">
@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount)
Displaying @Model.ItemStart - @Model.ItemEnd of @Model.TotalItemCount items(s)
</div>
@using (Html.BeginForm()) {
<div id="pro_pag2">
@Html.DropDownList("PageSize", new SelectList(new Dictionary<string, int> { { "10", 10 }, { "20", 20 }, { "100", 100 } }, "Key", "Value"), new { @class = "pro_pag_tf1", id = "pagesizelist" })
</div>
}
@section scripts {
<script type="text/javascript">
$('#pagesizelist').on('change', function (event) {
var form = $(event.target).parents('form');
form.submit();
});
</script>
}
Индексное действие контроллера Index.cs:
public ActionResult Index(int? PageSize, int? page)
{
int? DefaultPageSize = 10;
int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
if (PageSize != null) {
DefaultPageSize = PageSize;
}
return View(contractsList.ToPagedList(currentPageIndex, (int)DefaultPageSize));
}
Изменение номера страницы работает. Но когда я изменяю размер страницы с помощью раскрывающегося списка и выбираю 2 в качестве номера страницы, по умолчанию используется размер страницы...
Я предполагаю, что это связано с тем, что кнопка выбора страницы не отправляет размер страницы, выбранный из раскрывающегося списка... как мне получить выбранное значение из раскрывающегося списка в методе действия индекса?
Как я могу передавать выбранное значение из раскрывающегося списка каждый раз, когда я нажимаю кнопку страницы? Кажется, это работает, просто выбрав раскрывающийся список?
Может быть, есть лучшее решение?