【问题标题】:How to refresh mvc webgrid如何刷新 mvc webgrid
【发布时间】:2016-03-09 07:34:49
【问题描述】:

我在我的 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 中,我需要通过从 DB 加载数据来刷新 webGrid。如何从 DB 将内容重新加载到 webGrid?同样在重新加载后,这个pageNumber应该是旧的。如何做到这一点?

【问题讨论】:

  • 您是否看过使用部分并使用 ajax jquery 调用操作。 Example here

标签: asp.net-mvc refresh webgrid page-numbering


【解决方案1】:

我终于找到了解决问题的方法。我必须用ID 定义&lt;div&gt; 并在WebGrid 控件的ajaxUpdateContainerId 属性中引用divid,这将允许WebGrid 使用Ajax 异步更新数据。

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

然后,调用WebGridGetHtml方法,让Razor Engine为其生成对应的HTML。在&lt;div&gt; 标签结束后。

@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!');
                }
            });

现在它对我来说工作正常。

【讨论】:

  • 谢谢! location.reload();就是我需要做的事情!
  • @itzmebibin 我相信在 Jquery 中使用局部视图或 $('#Grid').append(...) 会更适合您的期望。而不是刷新整个页面。
猜你喜欢
  • 1970-01-01
  • 2015-10-28
  • 2016-10-31
  • 1970-01-01
  • 2013-07-11
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
相关资源
最近更新 更多