如何刷新mvc webgrid
How to refresh mvc webgrid
我在我的 mvc 应用程序中使用 WebGrid。
<div class="grid-div" id="webgridid">
@grid.GetHtml(
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
columns: new[]
{
grid.Column("name","Name", canSort: true, style: "name"),
grid.Column("description","Description", canSort: true, style: "description"),
grid.Column("duration","Duration", canSort: true, style: "duration"),
})
</div>
我可以使用表单编辑选定的行值。编辑此值后,它不会反映在我的 webGrid 中。但它反映在数据库中。为了将此反映到 webGrid 中,我需要通过从数据库加载数据来刷新 webGrid。如何将内容从数据库重新加载到 webGrid?同样在重新加载之后,这个 pageNumber 应该是旧的。如何做到这一点?
终于找到了解决问题的方法。我必须用 ID
定义一个 <div>
,并在 WebGrid
控件的 ajaxUpdateContainerId
属性中引用 div
的 id
,这将允许 WebGrid
使用 Ajax
.
异步更新数据
<div id="ajaxgrid">
@{
var grid = new WebGrid(Model, rowsPerPage: 10, selectionFieldName: "SelectedRow", ajaxUpdateContainerId: "ajaxgrid");
}
</div>
然后,调用WebGrid
的GetHtml
方法,让Razor Engine为其生成对应的HTML
。 <div>
标签结束后。
@grid.GetHtml(
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
columns: new[]
{
grid.Column("name","Name", canSort: true, style: "name"),
grid.Column("description","Description", canSort: true, style: "description"),
grid.Column("duration","Duration", canSort: true, style: "duration"),
})
然后在我的 ajax
更新请求中,我添加了 location.reload()
来刷新我的 WebGrid
。
$.ajax({
url: '@Url.Action("User", "UserDetails")',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: formData,
contentType: false,
processData: false,
success: function (result) {
if (result == "OK") {
location.reload();
}
else
alert(result);
},
error: function (result) {
alert('Error!');
}
});
现在它对我来说工作正常。
我在我的 mvc 应用程序中使用 WebGrid。
<div class="grid-div" id="webgridid">
@grid.GetHtml(
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
columns: new[]
{
grid.Column("name","Name", canSort: true, style: "name"),
grid.Column("description","Description", canSort: true, style: "description"),
grid.Column("duration","Duration", canSort: true, style: "duration"),
})
</div>
我可以使用表单编辑选定的行值。编辑此值后,它不会反映在我的 webGrid 中。但它反映在数据库中。为了将此反映到 webGrid 中,我需要通过从数据库加载数据来刷新 webGrid。如何将内容从数据库重新加载到 webGrid?同样在重新加载之后,这个 pageNumber 应该是旧的。如何做到这一点?
终于找到了解决问题的方法。我必须用 ID
定义一个 <div>
,并在 WebGrid
控件的 ajaxUpdateContainerId
属性中引用 div
的 id
,这将允许 WebGrid
使用 Ajax
.
<div id="ajaxgrid">
@{
var grid = new WebGrid(Model, rowsPerPage: 10, selectionFieldName: "SelectedRow", ajaxUpdateContainerId: "ajaxgrid");
}
</div>
然后,调用WebGrid
的GetHtml
方法,让Razor Engine为其生成对应的HTML
。 <div>
标签结束后。
@grid.GetHtml(
tableStyle: "gridTable",
headerStyle: "gridHead",
footerStyle: "gridFooter",
columns: new[]
{
grid.Column("name","Name", canSort: true, style: "name"),
grid.Column("description","Description", canSort: true, style: "description"),
grid.Column("duration","Duration", canSort: true, style: "duration"),
})
然后在我的 ajax
更新请求中,我添加了 location.reload()
来刷新我的 WebGrid
。
$.ajax({
url: '@Url.Action("User", "UserDetails")',
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: formData,
contentType: false,
processData: false,
success: function (result) {
if (result == "OK") {
location.reload();
}
else
alert(result);
},
error: function (result) {
alert('Error!');
}
});
现在它对我来说工作正常。