我有一个mvcjqgrid:
@(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"))主计长:
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,每次用户返回该页面时,页面应该与他离开时相同?
如果我这样做了:
Session["settings"] = gridSettings;我需要一些方法来比较存储的gridSettings和传递给行动的那个。
发布于 2013-05-15 08:18:47
答案是重新创建Grid:
@{
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"))发布于 2013-05-13 11:06:53
你为什么不用Http Cache来处理这个案子呢?我们可以编写缓存提供程序,而Http就是其中的一个实现。因此,在未来,您可以为它扩展更多的提供者。
https://stackoverflow.com/questions/16518413
复制相似问题