2

我在我的 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应该是旧的。这个怎么做?

4

1 回答 1

5

最后我找到了我的问题的解决方案。我必须在控件的属性中定义一个<div>withID并引用div's ,这将允许使用.idajaxUpdateContainerIdWebGridWebGridAjax

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

然后,调用 的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"),
   })

然后在我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!');
                }
            });

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

于 2016-03-09T09:55:38.930 回答