支持大型下拉菜单的最佳方式

时间:2010-03-15 03:38:35

标签: drop-down-menu user-experience

假设我有一个可以通过在下拉列表中指定一些值来限制的报告。此下拉列表引用了一个包含>的表30,000条记录。我不认为填充下拉列表是可行的!那么,在这种情况下,为用户提供选择值的最佳方法是什么?这些值实际上没有类别,即使我通过值的第一个字母细分(通过具有一些嵌套下拉情况),仍可能留下几千个条目。

处理此问题的最佳方法是什么?

6 个答案:

答案 0 :(得分:5)

搜索,不要分类。

您可以将控件显示为一个简单的文本框,当用户输入几个字符时,您可以弹出类似自动填充的下拉列表来选择最终值。 Here's a link to the jQuery plugin for autocomplete

答案 1 :(得分:3)

我真的不会有30,000个元素下拉列表。 GUI应该让用户更容易而不是更难。

如果您没有其他方法可以按字母顺序对数据进行分类,则不限于使用仅使用第一个字符的两阶段方法。让它依赖前两个字符。

这会在第一个下拉列表中给出最多676个(假设只有alphas),在第二个下拉列表中(平均值)44个。

我们实际上采取了两种解决此问题的方法。 BIRT(我们使用)允许级联参数,只要您更改第一个下拉框,就可以轻松运行第二级查询。

然而,我们的一些客户完全不关心优秀的GUI内容(除了输出漂亮的9点Verdana和美丽的图表来安抚管理,当然)。他们更喜欢自由格式的文字输入字段,只需键入"SYS_PAX_%"即可更改查询。

当然,这些客户确切知道数据库中的数据,并使用适合使用SQL LIKE子句进行分类的值。其他人更喜欢搜索的能力。

答案 2 :(得分:1)

我在2年前就asp.net下拉框提出了同样的问题。

相信我,甚至不要尝试。使用上面的自动完成建议。我发现显示5000条记录以上的任何内容都会导致浏览器崩溃。

只需2美分。

答案 3 :(得分:0)

+1 @pax。我仍然希望看到30K的下拉菜单! :)

@JustAProgrammer,也许你可以做一个文本框,人们可以在其中键入他们正在寻找的内容的开头,你可以在输入时进行过滤。

答案 4 :(得分:0)

如果您从性能角度而不是可用性角度询问,我会考虑使用实时列表方法,在您向上或向下滚动时按需加载列表项的一部分。如果用户快速点击列表,说中间,它将加载对应于该位置的另外10个元素。渲染时间和加载时间都会快得多。

与分页一样,但“流畅”。

答案 5 :(得分:0)

如上所述,自动完成下拉最好。但它需要用户对开始的条目类型有所了解。如果用户熟悉数据,请选择它。

或者,如果您可以对数据进行分类,那么您可以先从类别开始,然后根据选择,您可以使用实际值填充从属下拉列表,这些值将是原始值的子集。