Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用ASP.NET MVC索引视图分页时使用页面大小下拉列表?_Javascript_Asp.net Mvc_Html_Asp.net Mvc 4 - Fatal编程技术网

Javascript 如何在使用ASP.NET MVC索引视图分页时使用页面大小下拉列表?

Javascript 如何在使用ASP.NET MVC索引视图分页时使用页面大小下拉列表?,javascript,asp.net-mvc,html,asp.net-mvc-4,Javascript,Asp.net Mvc,Html,Asp.net Mvc 4,我已使用它在ASP.NET MVC 4应用程序中分页记录列表: 我想添加一个下拉列表来更改页面大小的值。在更改下拉列表中选择的项目时,我希望更改页面大小。 我不想使用默认页面大小 查看评论后, 这是我在Index.cshtml视图中元素之后所做的: <div class="pager"> @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount) Displaying @Model.Item

我已使用它在ASP.NET MVC 4应用程序中分页记录列表:

我想添加一个下拉列表来更改页面大小的值。在更改下拉列表中选择的项目时,我希望更改页面大小。 我不想使用默认页面大小

查看评论后, 这是我在Index.cshtml视图中
元素之后所做的:

<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>
}
更改页码有效。但当我用下拉菜单更改页面大小并选择2作为页码时,它默认为页面大小

我猜这是因为页面选择按钮没有提交从下拉列表中选择的页面大小…如何在索引操作方法中从下拉列表中获取所选值

每次选择页面按钮时,如何从下拉列表中传递所选值?它似乎只需要选择下拉菜单就可以了


也许有更好的解决方案?

基于上述代码,第2页生成的链接如下:

<a href="/Index?page=2">2</a>
然后将视图代码中
的内容更改为

<div class="pager">
    @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount).Options(o => o.AddRouteValue("PageSize", ViewBag.PageSize))
    Displaying @Model.ItemStart - @Model.ItemEnd of @Model.TotalItemCount items(s)

</div>

@Pager(Model.PageSize、Model.PageNumber、Model.TotalItemCount)。选项(o=>o.AddRouteValue(“PageSize”、ViewBag.PageSize))
显示@Model.TotalItemCount项目的@Model.ItemStart-@Model.itemsend
<a href="/Index?PageSize=20&page=2">2</a>
public ActionResult Index(int? PageSize, int? page)
{
    int? DefaultPageSize = 10;
    int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
    if (PageSize != null) {
        DefaultPageSize = PageSize;
    }

    ViewBag.PageSize = DefaultPageSize;

    return View(contractsList.ToPagedList(currentPageIndex, (int)DefaultPageSize));
}
<div class="pager">
    @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount).Options(o => o.AddRouteValue("PageSize", ViewBag.PageSize))
    Displaying @Model.ItemStart - @Model.ItemEnd of @Model.TotalItemCount items(s)

</div>