如何解决通过发布创建新网格后,MVC3 WebGrid保留其分页数据!
| 我在WebGrid分页方面遇到问题;但首先,这是一些控制器伪代码:public ActionResult Date()
{
var data = getLINQ();
return View(data);
}
[HttpPost]
public ActionResult Date(string start,string finish)
{
var data - getLINQ(start,finish);
return View(data);
}
..和一些查看代码:
@model IEnumerable<ModelClass>
@{
ViewBag.Title = \"Date\";
Layout = \"~/Views/Shared/_Layout.cshtml\";
var grid = new WebGrid(source: Model,rowsPerPage: 25);
}
@using (Html.BeginForm())
{
<fieldset>
<span>From date: <input type=\"text\" id=\"start\" name=\"start\" data-val=\"true\" value=\"@ViewBag.start\" /></span>
<span>To date: <input type=\"text\" id=\"finish\" name=\"finish\" data-val=\"true\" value=\"@ViewBag.finish\" /></span>
<input type=\"submit\" value=\"Update\" />
</fieldset>
}
<div>
@grid.GetHtml(tableStyle: \"table\",caption: \"Claims Between \" + @ViewBag.start + \" and \" + @ViewBag.finish,htmlAttributes: new { cellspacing = \"0\",cellpadding = \"0\",id = \"_grid\" },columns: grid.Columns(
grid.Column(\"ID\",\"ID\"),grid.Column(\"DateReceived\",\"Date Received\"),grid.Column(\"Client\",\"Client\"),grid.Column(\"ReferenceNumber\",\"Reference Number\"),grid.Column(\"PatientLastName\",\"Patient Last Name\"),grid.Column(\"PatientFirstName\",\"Patient First Name\"),grid.Column(\"ClaimType\",\"Type\"),grid.Column(\"BilledCharges\",\"Billed Charges\",item => String.Format(\"{0:C}\",item.BilledCharges ?? 0)),grid.Column(\"ReimbursementAgent\",\"Reimbursement Agent\")))
</div>
因此,您可以理解,这里的想法是,如果用户GETS / Date,将为他们提供一组默认数据。如果用户POSTS的开始和结束日期为/ Date,则向用户显示该数据子集。
这是一个很好的atm,可以节省一个陷阱:如果获取/ Date,则有一个分页的结果集(网格下的页码),如果再进行POST并获取新数据,则单击任意页码,网格将重新加载原始结果集和原始分页!
有什么办法可以重置吗?任何帮助表示赞赏!
解决方法
好的-这并不是您想要的-而不是修复Webgrid代码,在处理WebGrid时,我的建议是放弃使用更好的控件(imho)-Telerik MVC网格。它是免费的,开源的,并且非常易于使用。您可以使用大约两行代码来设置ajax分页。在以下位置下载:
http://telerikaspnetmvc.codeplex.com/
演示:
http://demos.telerik.com/aspnet-mvc/grid/
博客条目:
http://msmvps.com/blogs/bmains/archive/2010/01/04/using-the-telerik-mvc-grid.aspx
网上有很多信息-但是演示应该向您展示它非常简单。就我而言,这是无可比拟的-正如我所说-免费和开源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。