我有一个部分视图中的 webgrid。parial 视图包含一个将数据传递给 webgrid 的 ajax 表单。我的观点看起来像
using (Ajax.Begin("Gain", "Gaining", new AjaxOptions{UpdateTargetId="Res"}))
{
}
<div id="Res">
<div id="grid">
@{var grid = new WebGrid(source: Model.myList, canPage: true, rowsPerPage: 25, ajaxUpdateContainerId: "grid",
canSort: true);
grid.Pager(mode: WebGridPagerModes.All));
@grid.GetHtml(htmlAttributes: new { id = "grid" },
columns: grid.Columns(
grid.Column(columnName: "num", header: "Number"),
grid.Column(columnName: "name", header: "Full Name", canSort: true)
));
}
</div>
</div>
该页面显示井,但排序和移动到下一页不起作用。当我尝试时,网格就消失了。我注意到,当我将鼠标悬停在列标题上时,当我将鼠标悬停在标题排序链接上时,url 仍然是 localhost:XXXXX/#。当我删除 时ajaxUpdateContainerId="Res"
,url 似乎是正确的:localhost:xxx?length=4?sort=name&sortdir=ASC,这是一个错误的 URL,因为我的数据是从控制器 Gaining 和方法 Gain 获得的
请问我怎样才能让它工作。或者我怎样才能调试这个?排序是如何工作的?
编辑
我现在对 ajaxUpdateContainerId 的使用感到困惑。根据这个链接,这对他/她的分类没有帮助。如果我将它从我的中删除,当我单击标题链接进行排序或任何分页链接时,整个部分视图都会被删除。那么ajaxUpdateContainerId 有什么用呢?