部分视图中的WebGrid - 从重新加载页面停止分页

时间:2014-02-18 02:08:25

标签: ajax asp.net-mvc razor webgrid

我有一个仪表板类型页面,其中包含多个局部视图,每个视图都包含一个webgrid。

例如,这是web网格在我的_CurrentSubscriptions局部视图中:

WebGrid grid = new WebGrid(Model.Titles,
    rowsPerPage: Model.PageSize,
    defaultSort: "Name",
    ajaxUpdateContainerId: "UserSubscriptions");
@grid.GetHtml(columns: grid.Columns(grid.Column("Name"), grid.Column("Description"),
grid.Column(format: @<text>@Html.ActionLink("Remove", "RemoveSub")</text>)));

我还有一个_addSubscription局部视图,其中包含以下网格以显示搜索结果。

WebGrid grid = new WebGrid(Model.Titles,
    rowsPerPage: Model.PageSize,
    defaultSort: "Name",
    ajaxUpdateContainerId: "TitlesFound");
grid.Pager(WebGridPagerModes.All);
@grid.GetHtml(columns: grid.Columns(grid.Column("Name"), grid.Column("Description"),
grid.Column(format: @<text>@Html.ActionLink("Add", "AddSub")</text>)));

从我的Subscriptions / index.cshtml

调用两个部分视图

是否可以限制每个网格上的分页重新加载页面并只更新所选网格?

1 个答案:

答案 0 :(得分:0)

  1. 将您的网格包含在带有Id的div中。
  2. (您已经这样做了)实例化网格时,请指定AJAX参数 ajaxUpdateContainerId与div的ID。
  3. 重新加载您的信息页。
  4. 点击另一页,注意没有回页;只有网格重新加载。

    <div id="UserSubscriptions">
        @grid.GetHtml(columns: 
            grid.Columns(grid.Column("Name"),
            grid.Column("Description"),
            grid.Column(format: @<text>@Html.ActionLink("Add", "AddSub")</text>)));
    </div>