我有一个包含以下对象的网格:
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]
方法。
感谢您的帮助。
答案 0 :(得分:0)
在执行分页时,您必须以某种方式将检查的值发送到服务器,否则您将丢失它们。你有几种可能性:
将复选框放在HTML表单旁边与寻呼机一起,并使寻呼机链接提交此表单的按钮。
使用AJAX执行分页并仅刷新DOM的网格部分,并且不要在复选框中触摸。这样他们就会保留自己的价值观。
订阅寻呼机链接的onclick
事件并在里面取消默认操作(evt.preventDefault()
),获取复选框的值并将它们附加到网址的查询字符串中将执行分页。然后重定向到这个新网址。