我目前有一个带有分页的报告,一次显示20条记录。总共有600条记录。
在此报告中,我还为每个记录都有一个复选框列。基于此,我的查询如下:
我想合并“全部检查”功能,因此基于显示20条记录(总共600条记录)的方案,当我按下“全部检查”复选框时,我实际上想检查全部600条记录记录,而不仅仅是每页20个。
JavaScript可以做到这一点,因为记录的总数会有所不同吗?
与概念(1)相同,如果我有一个“提交”按钮,我实际上想验证所有600条记录均已检查,即使我一次只查看20条记录
这可能吗?
如果您要javascript使用这种功能,则必须将所有复选框都呈现到屏幕上。
如果您确实希望“全部检查”框表示检查所有页面,则建议在服务器端进行检查。
例如
<ul>
<li><input type='checkbox' name='item_ids[]' value='1'/>Item 1</li>
<li><input type='checkbox' name='item_ids[]' value='2'/>Item 2</li>
<li><input type='checkbox' name='item_ids[]' value='3'/>Item 3</li>
<li><input type='checkbox' name='check_all' value='check_all'/></li>
</ul>
当然,用户看不到的“复选框”意味着他们不能选择全部,然后取消选择单个。检查所有页面也有些违反直觉。这种事情的大多数实现只会影响您当前正在查看的页面。对于这种功能,我可能会使用其他控件(单独的按钮)。
imo这可能不是用户期望的,并且众所周知,可用性的黄金法则是不要让用户感到惊讶。我建议使用一个按钮或链接,该按钮或链接应非常清楚地说明此操作将“选择全部,并且所有意思是所有页面上的所有记录”。
我看到的另一种可能的解决方案是一个链接,显示“在一页上显示全部”。在用户单击并且页面重新加载了所有记录并且没有分页之后,他们可以选择全部。
但是要真正回答您的问题,我需要更多信息。分页是在服务器端吗?还是服务器实际上提供了600条记录,但是将它们切成薄片并切成20/20块(在客户端上)?