我有一个包含以下对象的网格:
public PagedList<GridList> PagedList { get; set; }
public class GridList
{
public Employee EmployeeItem { get; set; }
public bool isChecked { get; set; }
}
我的 aspx 在循环中实现了表格,然后我为每个员工放置了一个复选框:
<%foreach (var item in Model.PagedList )
{%>
<tr>
<td align="center">
<%: Html.CheckBox(item.EmployeeItem.ID.ToString(), item.isChecked)%>
</td>
</tr>
<% }%>
当用户更改页面时,我需要保持选中所有复选框。因此,如果他选择一个页面的 2 或 3 个选项,然后更改页码,当他返回到该页面时,应该标记相同的检查。
我尝试了很多解决方案,但我不会在这里评论它们只是为了期待更好的解决方案。我试过的所有订单都遇到了无法解决的问题。
当用户点击进入另一个页面时,代码转到[HttpGet]
方法。
感谢您的帮助。
最佳答案
在执行分页时,您将不得不以某种方式将选中的值发送到服务器,否则您将丢失它们。您有几种可能性:
将复选框与寻呼机放在 HTML 表单中,并使寻呼机链接提交此表单的按钮。
使用 AJAX 执行分页并仅刷新 DOM 的网格部分,不要触摸复选框。通过这种方式,他们将保留自己的值(value)观。
订阅寻呼机链接的
onclick
事件并在内部取消默认操作(evt.preventDefault()
),获取复选框的值和将它们附加到将执行分页的 url 的查询字符串。然后重定向到这个新的 url。
关于c# - 通过分页检查复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466395/