我正在使用 ASP.NET MVC 3。
我有一长串项目,我想将它们显示给用户,每个项目旁边都有一个复选框,表示该项目是打开还是关闭。因为项目很多,所以项目使用分页显示。
加载页面时,如果该项目处于打开状态,则会选中一个复选框。用户可以翻阅项目,选中/取消选中复选框。
我只想在项目状态发生变化时启用提交按钮。当用户翻阅列表并进行更改时,检测项目列表是否处于脏状态的最佳方法是什么。
我正在使用 ASP.NET MVC 3。
我有一长串项目,我想将它们显示给用户,每个项目旁边都有一个复选框,表示该项目是打开还是关闭。因为项目很多,所以项目使用分页显示。
加载页面时,如果该项目处于打开状态,则会选中一个复选框。用户可以翻阅项目,选中/取消选中复选框。
我只想在项目状态发生变化时启用提交按钮。当用户翻阅列表并进行更改时,检测项目列表是否处于脏状态的最佳方法是什么。
根据您是为滚动还是 ajax 进行页面刷新,您将如何做到这一点会有所不同。
如果您只是使用新页面信息重新加载页面,那么您将需要某种状态来跟踪先前选择的项目。这可以在 Session 或临时表中完成。临时表可以在会话重置后继续存在,并且可以在服务器场方案中工作。
无论如何,您的页面在复选框单击时回发,或者您在下一页上发布(在任何一种情况下,您都想做一个post-redirect-get 模式)。当页面刷新时,您需要返回集合是否脏的指示,并启用提交按钮。
请注意,用户可能会在选择过程中走开,半小时后回来。如果他们的登录仍然有效,并且您使用 session,则 session 可能已被回收。
如果您正在使用 Ajax,那么您需要保留一个正在运行的更改列表,以便如果用户稍后取消选择它们,您可以再次禁用提交按钮。您可以将此列表保存在隐藏字段中,然后将每个复选框发布到临时表中,或者您可以将运行总计保持在隐藏状态并在调用提交时应用更改。您的隐藏字段可能包含您已更改的 id 列表(选中或未选中)。当该字段为空时,禁用该按钮,如果不是,则启用它。