如何刷新MVC WebGrid

BIB*_*NJU 2 asp.net-mvc refresh webgrid page-numbering

我在我的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>
Run Code Online (Sandbox Code Playgroud)

我可以使用表单来编辑选定的行值。编辑此值后,它不会反映在我的webGrid中。但这反映在数据库中。为了将其反映到webGrid中,我需要通过从DB加载数据来刷新webGrid。如何将内容从数据库重新加载到webGrid?同样,在重新加载后,此pageNumber应该是旧的。这该怎么做?

BIB*_*NJU 6

最后,我找到了解决问题的方法。我必须定义一个<div>ID并参照dividajaxUpdateContainerId的属性WebGrid控制,将允许WebGrid以更新数据不同步使用Ajax

<div id="ajaxgrid">
  @{
      var grid = new WebGrid(Model, rowsPerPage: 10, selectionFieldName: "SelectedRow", ajaxUpdateContainerId: "ajaxgrid");                   
   }
</div>
Run Code Online (Sandbox Code Playgroud)

然后,调用的GetHtml方法WebGrid,以便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"),
   })
Run Code Online (Sandbox Code Playgroud)

然后,在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!');
                }
            });
Run Code Online (Sandbox Code Playgroud)

现在对我来说工作正常。

  • 谢谢你!location.reload(); 这就是我需要做的一切! (2认同)