Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 过滤时添加/编辑UI表数据的最佳实践_User Interface_Design Patterns_Filtering - Fatal编程技术网

User interface 过滤时添加/编辑UI表数据的最佳实践

User interface 过滤时添加/编辑UI表数据的最佳实践,user-interface,design-patterns,filtering,User Interface,Design Patterns,Filtering,有人知道在过滤UI表中的数据时,是否有在UI表中编辑/添加数据的最佳实践吗 示例1: 假设我们有一个具有两个选项的表:添加新记录和编辑所选记录。此外,该表还有一个选项可以过滤A列上的数据 现在,如果表是通过筛选值为“1”的列A进行筛选的,并且我想添加一条新记录,该记录的值位于与筛选要求匹配的列A中,那么会发生什么情况: 该表应刷新并显示筛选后的记录以及选定的新添加的记录 该表应重置过滤器并显示所有选中新记录的记录 该表不应执行任何操作,并按原样显示过滤后的记录。当过滤器复位时,将显示新添加的记录

有人知道在过滤UI表中的数据时,是否有在UI表中编辑/添加数据的最佳实践吗

示例1:

假设我们有一个具有两个选项的表:添加新记录和编辑所选记录。此外,该表还有一个选项可以过滤A列上的数据

现在,如果表是通过筛选值为“1”的列A进行筛选的,并且我想添加一条新记录,该记录的值位于与筛选要求匹配的列A中,那么会发生什么情况:

  • 该表应刷新并显示筛选后的记录以及选定的新添加的记录
  • 该表应重置过滤器并显示所有选中新记录的记录
  • 该表不应执行任何操作,并按原样显示过滤后的记录。当过滤器复位时,将显示新添加的记录
  • 直觉上,对我来说,最好的解决方案是1号。但是如何解决示例2中的问题:

    示例2:

    如果表是通过筛选值为“1”的列A筛选的,并且我想在列A中添加一条值为“2”的新记录,那么会发生什么情况:

  • 尽管该表与筛选器不匹配,但该表应显示已筛选的记录和所选的新添加记录
  • 表格应重置过滤器,所有记录应显示为选中新记录
  • 该表不应执行任何操作,并按原样显示过滤后的记录

  • 同样的情况是,我们过滤了记录,并且在所选记录中,我们希望编辑进行过滤的值。编辑后的记录是否应被清除,或者是否应重置过滤器


    或者最好的方法是在过滤器打开时禁用添加/编辑操作?

    我不知道是否有关于它的最佳实践,但我以前也遇到过这个问题。我提出了两种不同的解决方案:

  • 在下次应用筛选器或重置筛选器之前,不应筛选已编辑/插入的记录。该记录的显示方式也应与其他表示该记录已编辑且未被过滤的记录不同(即较暗的背景色、图标或工具提示)

  • 记录在编辑或插入后应保持焦点。一旦它失去焦点,就应该对其应用过滤器。理想的解决方案是,如果记录被过滤掉,它不应该立即消失在视野之外。例如,它可能在动画中不可见


  • 我刚刚检查了google文档和libre office,它们都只是显示新记录,而不考虑过滤器。您需要重新应用过滤器以将其从视图中隐藏(在这两种情况下,“A”列都由“值1”过滤):


    我喜欢解决方案2,非常优雅。