asp.net-mvc - 如何跨分页保留复选框: PagedList

标签 asp.net-mvc asp.net-mvc-3

在我的 Controller 中我有

    var myTempModel = (from f in db.BA_TEMP_RESHOP_IMPORT
                       where f.WCCR_ID == WccrId
                       select new DataImportViewModel
                       {
                        //Set properties…
                       });



return View(myTempModel.ToPagedList(currentPage,
               maxRecords));

任何我当前的 ViewModel

    public class DataImportViewModel
    {

        public string WccrId { get; set; }
        public string Status                { get; set; }
        public string Note { get; set; }

    }

我的 View 模型引用是。

@model  PagedList.IPagedList<Proj.ViewModels.DataImportViewModel>

每个项目都使用displayFor。这工作正常,但现在我需要添加一个复选框,以在分页中保留其值

我想在页面顶部添加一个复选框,而不是应用于从 DataImportViewModel 返回的每一行。

我认为有两种方法可以做到这一点,但不确定如何实现,也不确定哪种方法最好。是创建一个新的 viewModel 还是将复选框值传递到 session 变量中更好?

我尝试创建一个像这样的新 View 模型,但不知道如何更改我的返回 View(...) 代码,甚至不知道应该在 View 中为 @model 使用什么。

public class DisplayViewModel
{
    public IEnumerable<DataImportViewModel> dataImport { get; set; }
    public Boolean useDefault { get; set; }
}

预先感谢您的帮助。如果我遗漏了任何有用的信息,请告诉我。 干杯

最佳答案

我做过类似的事情:
使用 bool 字段 Exetnd 您的 PagedList 实体(我想这就是您存储页码、每页记录数、排序方向等数据的地方)...当您传递所在页面的 nr 时...您还将把 bool 版本发送回 Controller ,这样您就可以将值传递给复选框。
不要忘记更新目标 div(targetdiv=您的实体在 View 中显示的 div)。 我的解决方案涉及这样的事情:

public class GridModel<T> : GridOperations
    {
        // Constructor
        public GridModel()
        {
            // Define any default values here...
            this.PageSize = 20;
            this.NumericPageCount = 20;
        }
    public IEnumerable<T> Data { get; set; }

并将数据传递到我的模型,如下所示:

@model  Proj.ViewModels.GridModel<Proj.ViewModels.DataImportViewModel>

在网格操作类中,我实现了许多互补的值(例如搜索文本框的字符串,状态:事件/不活动...等)以及您看到的值(页面大小,数字页面计数,排序方向、排序依据等)。从我的角度来看,这更有意义..但我可能有偏见:)。如果您无法在 DataImportViewModel 中传递该值,我建议您按照我的网格思维进行修改

关于asp.net-mvc - 如何跨分页保留复选框: PagedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926976/

相关文章:

asp.net-mvc - 将 View 模型中的值传递给 Controller ​​中的后 ActionResult

asp.net-mvc - FormsAuthenticationTicket 用户数据在加密后仍然可读(asp.net MVC3 with forms Auth.)

c# - await SignInManager.PasswordSignInAsync() 总是导致我的 ASP.NET MVC 项目失败

c# - 如何在 EF Code-First 中预编译 sql 查询?

javascript - 从 Javascript 调用 ASP.NET C# Controller 方法

c# - 过滤 GroupJoin 查询

asp.net-mvc - 将 IIS 7.5 预热模块与 ASP.NET MVC AuthorizeAttribute 结合使用

c# - 无法序列化接口(interface) System.Linq.IQueryable

asp.net-mvc - 在 Razor View 中默认区域

javascript - 为什么会出现 Uncaught TypeError : Cannot read property 'dataSource' of undefined