我正在使用Asp.Net MVC WebGrid。我的网格是通过局部视图的ajax调用显示的。因此,分页不起作用。每当我单击第二个页面时,整个页面都会刷新,url会变成
http://localhost:2429/mvc/SSP/Home/SearchQuery?page=2显然没有找到(404)。我认为Webgrid分页在局部视图中不能很好地工作。因此,我决定在每个页面的link.And上做一个jquery ajax调用,因为我需要一个url来从Webgrid中提取第二个页面的数据。
那么,有没有办法找到第二个网页的网址,这样我就可以从网页上提取数据并显示在第二个页面上。
发布于 2014-10-09 12:00:35
我觉得你需要这个
对于分页,您可以使用MVC4.Paging。
@Html.Raw(Ajax.Pager(
new Options
{
PageSize = Model.PageSize,
TotalItemCount = Model.TotalItemCount,
CurrentPage = Model.PageNumber,
ItemTexts = new ItemTexts() { Next = "Next", Previous = "Previous", Page = "P" },
ItemIcon = new ItemIcon() { First = "icon-backward", Previous = "icon-chevron-left", Next = "icon-chevron-right", Last = "icon-forward" },
TooltipTitles = new TooltipTitles() { Next = "Next page", Previous = "Previous page", Page = "Go to page {0}.", First = "Go To First Page", Last = "Go To Last Page" },
Size = Size.normal,
Alignment = Alignment.centered,
IsShowControls = true,
IsShowFirstLast = true
},
new AjaxOptions
{
UpdateTargetId = "grid-list",
OnBegin = "beginPaging",
OnSuccess = "successPaging",
OnFailure = "failurePaging"
}, new { controller = "Home", action = "Index", employee_name = ViewData["employee_name"] }))参考:http://mvcpaging.apphb.com/
我已经实现了它&它起作用了!
示例中提到了不带回发的分页。
安装nuGet包后,
将模型传递回视图或PartialView时,需要使用ToPagedList对其进行转换
myModel = myModel.ToPagedList(currentPageIndex,rowSize);上面的代码会为你变魔术!
但是如果你想在AJAX调用之后改变你的URL,那么你需要付出更多的努力。
发布于 2013-06-11 13:00:03
您还必须使用基于Ajax的分页来设计您的网格。现在,您正在为您的分页呈现锚点标记,这将导致整个页面加载。
有一些网格控件可以开箱即用地支持这一点。一个很好的例子是Telerik Kendo网格。
发布于 2013-06-11 16:55:07
这篇文章可能对你有帮助。
http://msdn.microsoft.com/en-us/magazine/hh288075.aspx
这并不像向网格传递一个页码那么简单,您需要将PageSize和PageNumber存储为模型的一部分。然后从视图中调用绑定方法。
就我个人而言,过去我已经创建了自己的分页帮助器,因此在控制器中传入(PageSize、TotalCount、CurrentPage),并从中带回数据的子集。这还可以防止控制器先取回所有数据,然后再对其进行分页,这对于大数据集来说效率不是很高。
编辑
我找到的另一篇文章解释了我上面所说的(第二部分)。
https://stackoverflow.com/questions/17036733
复制相似问题