超大型下拉列表的替代方案(24,000+ 项)

8
在我的管理页面中,当我编辑物品时,我必须将每个物品附加到一个父物品上。我有一个包含超过24,000个父项的列表,这些父项按字母顺序列在下拉列表中(一个音乐艺术家列表)。
列出所有这些项目的编辑页面在下拉菜单中的大小为2MB,并且对于那些使用旧计算机的人来说非常缓慢,特别是在Internet Explorer中。
有没有一个很好的替代方法来复制相同的功能,在不实际预加载所有这24,000个艺术家的情况下,我需要选择其中之一?
4个回答

4

不要在下拉列表中填充太多的名称,您可以考虑以下几种解决方案:

  1. 创建一个简单的搜索机制,匹配名称的开头
  2. 利用分类(如果有的话)和多个组合框来缩小选择范围
  3. 与上述类似,使用某种分类层次结构的树形结构
  4. 快捷方式控件,其中包含字母 (元类别) 的链接或按钮

当然,这取决于您正在实施的技术栈,例如您是否使用 AJAX 或 jQuery,访问数据库/数据类型等。


1

1

1
这正是我所想的。有没有办法将ID编码到其中?因为我喜欢下拉菜单的原因是它有一个值(ID)和实际文本(艺术家名称)。 - user15063
Yegor,这取决于你如何做。不过你总是可以发挥创意。例如,如果结果以无序列表返回,你可以将你的ID存储在列表项的标题标签中,然后只需使用类似于$(this).attr('title')的内容在单击时获取它。 - Ian Burris

0

假设用户对他们正在寻找的内容/人有一些想法(在这种情况下,是艺术家),我认为自动完成文本框是最好的选择。这种方法将消除您的初始加载问题,并提供一个干净的 AJAX 实现,这是用户现在倾向于使用的。或者,由于您正在处理艺术家名称,您可能希望包括一个“字母表”控件,允许用户通过首字母(名字和/或姓氏)缩小艺术家列表。我已经看到过每个字母都有一个超链接的有效实现。同样的方法可以通过下拉菜单实现,该下拉菜单动态加载基于所选内容筛选的艺术家下拉菜单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接