我正在使用MVC WebGrid。从4天开始我陷入困境。我已经检查了每个博客和stackoverflow上的每个问题,但没有任何作用。当我点击任何页码时,我的WebGrid消失了。我正在创建一个搜索控件。单击搜索按钮后,ajax.beginform将调用控制器上的方法,然后使用局部视图更新div。局部视图由webgrid(由结果组成)组成。 webgrid的代码如下:
@{
var grid = new WebGrid(canPage: true, rowsPerPage: 5, ajaxUpdateContainerId: "grid");
grid.Bind(list, rowCount: list.Count, autoSortAndPage: true);
grid.Pager(mode: WebGridPagerModes.All);
}
<div id = "grid">
@if (list[0].Title == null)
{
<span>No Record to display</span>
}
else
{
@grid.GetHtml(tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
rowStyle: "gridRow",
alternatingRowStyle: "gridAltRow",
columns: grid.Columns(
grid.Column("Title", "Title"),
grid.Column("Category", "Category")
));
}
</div>
第一次打开网格。但是当我点击任何页码时,网格就会消失。
请帮助我!!提前致谢
答案 0 :(得分:4)
我今天遇到了这个问题并设法修复它。
在POST方法调用后,WebGrid无法执行分页。
因此,修改您的搜索控件以获得除POST之后的其他内容
答案 1 :(得分:1)
寻呼问题已解决。
请删除ajaxUpdateContainerId: "grid"
从
var grid = new WebGrid( canPage: true, rowsPerPage: Model.PageSize, canSort: true, ajaxUpdateContainerId: "grid");
您已指定ajaxUpdateContainerId。这意味着您的分页基于 AJAX - 因此href中的#。如果您需要网址,则需要删除ajaxUpdateContainerId。
答案 2 :(得分:1)
我遇到同样的问题并在看到“mcaffart&#39;评论说webgrid在加载webgrid的post方法之后无法立即进行分页。我将我的Ajax调用更改为GET而不是post,还将我的操作方法标记为[HTTPGET],这导致webgrid上的分页按预期运行。感谢您的评论。