保持CheckBoxes通过分页检查

时间:2011-12-11 18:33:33

标签: c# asp.net-mvc

我有一个包含以下对象的网格:

public PagedList<GridList> PagedList { get; set; }


public class GridList
{
    public Employee EmployeeItem { get; set; }
    public bool isChecked { get; set; }
}

我的aspx在循环中实现了表,然后我为每个Employee设置了一个复选框:

 <%foreach (var item in Model.PagedList )
   {%>
      <tr>
         <td align="center">
            <%: Html.CheckBox(item.EmployeeItem.ID.ToString(), item.isChecked)%>
        </td>
     </tr>
<% }%>

我需要在用户更改页面时保留所有选中的复选框。因此,如果他选择一个页面的2或3个选项,然后更改页码,当他回到此页面时,应该标记相同的检查。

我尝试了很多解决方案,但我不会在这里评论它们只是为了期待更好的解决方案。我试过的所有订单都有我无法解决的问题。

当用户点击进入另一个页面时,代码将转到[HttpGet]方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在执行分页时,您必须以某种方式将检查的值发送到服务器,否则您将丢失它们。你有几种可能性:

  1. 将复选框放在HTML表单旁边与寻呼机一起,并使寻呼机链接提交此表单的按钮。

  2. 使用AJAX执行分页并仅刷新DOM的网格部分,并且不要在复选框中触摸。这样他们就会保留自己的价值观。

  3. 订阅寻呼机链接的onclick事件并在里面取消默认操作(evt.preventDefault()),获取复选框的值并将它们附加到网址的查询字符串中将执行分页。然后重定向到这个新网址。