如何在mvc中保留复选框选择?

时间:2012-07-16 22:04:36

标签: asp.net-mvc

我有一个MVC站点/视图,显示顶部的一系列复选框,对应于我的webgrid记录中可用的年份。我想点击复选框来过滤webgrid中的数据。我有这个工作,但当我点击webgrid中的标题对其进行排序时,我的复选框重置为未选中状态。

我习惯于webform编程,所以一直依赖于viewstate来维护选择。

我如何在MVC世界中这样做?

以下是我在代码中显示复选框的代码:

  @using (Ajax.BeginForm(new AjaxOptions { InsertionMode=InsertionMode.Replace,UpdateTargetId="myGrid"}))
{
    foreach (var y in Model.Years)
    {
      <input type="checkbox" name="cbYears" value="@y.Value" />
      <label for="cbYears">@y.Value</label>
    }
<br />
<input type="submit" value="Filter Results" />
}

网格以局部视图显示。

TIA

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

  

我如何在MVC世界中这样做?

在网格中执行排序时,您必须在请求中发送过滤选项。这个想法是每当你进行排序时,你必须以查询字符串或形式提交当前过滤选项,当前分页以及与请求中的网格相关的其他内容,这样就不需要维护状态了因为请求中提供了所需的所有信息。

对于前。如果你看到jqgrid它提供了许多选项,如排序,过滤,分页,分组等。首先说我已经过滤了特定列/值的网格然后如果我进行排序然后网格附加当前过滤的列/值和排序将一切列作为请求中的查询字符串,因此在服务器端,我不需要保留任何状态,因为所有状态都在查询字符串中可用。

您也遵循类似的方法。