0

我有一个使用 PagedList 进行分页的 MVC 应用程序。第一列是一个复选框。如果用户选择一行,我希望它在整个分页过程中保持保留(即:用户选择第 1 页上的第 1 行,然后转到第 5 页,然后返回第 1 页,我希望仍然检查第 1 行)。我似乎无法弄清楚如何在此之上使用 Ajax 来实现解决方案。有任何想法吗?

@foreach (var appUser in Model)
{
    <div class="row" style="border-bottom: 1px dotted black; font-size: 12px;">
    <div class="one column alpha">
        @Html.CheckBox("chkUser" + @appUser.appUserId)
    </div>
    <div class="two columns alpha">
        <img src="@appUser.appUserProfileImage" alt="@appUser.appUserHandle" />
    </div>
    <div class="two columns omega">
        @appUser.appUserHandle
    </div>
    <div class="four columns omega">
        @appUser.appUserStatus
    </div>
    <div class="three columns omega" style="text-align: right;">
        <input type="button" value="Mail @appUser.appUserHandle" id="btnMail" onclick="location.href='@Url.Action("MailUser", "Settings")';return false;" />
    </div>
    </div>
}
    <br />
    <div class="row">
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
    </div>
    <div class="row">
    @Html.PagedListPager(Model, page => Url.Action("AppUsers", "Settings",
            new { p = page, id = ViewBag.Id, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
    </div>
4

1 回答 1

0

我正在考虑隐藏来保存所选项目的 ID 列表。hidden 应该在保存分页列表的容器之外(以避免覆盖它)。

因此,一旦完成选择项目并提交表单,就可以从隐藏中获取所选项目。

关于在我返回该页面时保持选中项目的要求,您应该检查表中的 id 与隐藏中检查的 id 相比。如果找到它,请选中相应的复选框。这是通过 jQuery 完成的。

其他选项是在每次页面更改中,您提交当前选定的用户,并检查您的 Razor 代码(AKA 服务器端)。我认为 jQuery 更好。

于 2013-11-19T22:29:07.857 回答