2012-07-16 63 views
0

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

我用的WebForm编程所以一直依靠视图状态保持的选择。

如何做到这一点的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

回答

1

如何做到这一点的MVC世界?

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

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

您也遵循了类似的一种方法。