首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVCjqDrid在会话中存储GridSettings

MVCjqDrid在会话中存储GridSettings
EN

Stack Overflow用户
提问于 2013-05-13 09:10:12
回答 2查看 536关注 0票数 0

我有一个mvcjqgrid:

代码语言:javascript
复制
@(Html.Grid("dataGrid")
          .SetJsonReader(new MvcJqGrid.DataReaders.JsonReader { Id = "Id", RepeatItems = false })
          .SetRequestType(RequestType.Post)
          .AddColumn(new Column("Name").SetLabel("Name").SetSearch(true))
          .AddColumn(new Column("Email").SetLabel("E-Mail").SetSearch(true).SetFormatter(Formatters.Email))
          .AddColumn(new Column("Phone").SetLabel("Phone").SetSearch(true))
          .SetSearchToolbar(true)
          .SetUrl(Url.Action("GetData", "Controller"))
          .SetSearchOnEnter(false)
          .SetRowNum(10)
          .SetRowList(new[] { 10, 15, 20, 50 })
          .SetViewRecords(true)
          .SetPager("pager"))

主计长:

代码语言:javascript
复制
    public ActionResult GetData()
    {
        return View(new myEntity[0]);
    }

    [HttpPost]
    public JsonResult GetData(GridSettings gridSettings)
    {
        int totalRecords = DataHelper.GetCount();
        var data = DataHelper.GetData(gridSettings);
        var jsonData = new
        {
            total = totalRecords / gridSettings.PageSize + 1,
            page = gridSettings.PageIndex,
            records = totalRecords,
            rows = data
        };
        return Json(jsonData);
    }

编辑:

因此,我的问题是,如何以正确的方式在会话中存储GridSettings,每次用户返回该页面时,页面应该与他离开时相同?

如果我这样做了:

代码语言:javascript
复制
Session["settings"] = gridSettings;

我需要一些方法来比较存储的gridSettings和传递给行动的那个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-15 08:18:47

答案是重新创建Grid:

代码语言:javascript
复制
@{
     var setting = Session["settings"] as GridSettings;
}
@(Html.Grid("dataGrid")
          .SetJsonReader(new MvcJqGrid.DataReaders.JsonReader { Id = "Id", RepeatItems = false })
          .SetRequestType(RequestType.Post)
          .AddColumn(new Column("Name").SetLabel("Name").SetSearch(true))
          .AddColumn(new Column("Email").SetLabel("E-Mail").SetSearch(true).SetFormatter(Formatters.Email))
          .AddColumn(new Column("Phone").SetLabel("Phone").SetSearch(true))
          .SetSearchToolbar(true)
          .SetUrl(Url.Action("GetData", "Controller"))
          .SetSearchOnEnter(false)
          .SetRowNum(setting != null?setting.PageSize : 10)
          .SetPage(setting != null?setting.PageIndex : 1);
          .SetSortName(setting != null?setting.SortColumn : "");
          .SetRowList(new[] { 10, 15, 20, 50 })
          .SetViewRecords(true)
          .SetPager("pager"))
票数 0
EN

Stack Overflow用户

发布于 2013-05-13 11:06:53

你为什么不用Http Cache来处理这个案子呢?我们可以编写缓存提供程序,而Http就是其中的一个实现。因此,在未来,您可以为它扩展更多的提供者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16518413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档