假设我有几千个组织的列表,并且用户需要能够选择其中一个。该列表太大了,无法在页面加载处的下拉列表中填充,并且用户通常知道他们想要什么,但这不是组织名称的第一部分。也就是说,他们知道“收藏”,但并不知道该组织的确切名称是“收藏部”。因此,用户将需要/想要输入一些信息。

使用某种自动完成的文本框非常容易,但是我不想允许用户键入随机文本 - 他们必须明确选择一个组织。

最好的解决方案是什么?

有帮助吗?

解决方案

IMO我将简化UI:

  • 输入字符串的文本框
  • 下拉菜单以设置过滤器选项,例如:“包含|以|末端开头”。
  • 按钮“查找”

然后,我将根据搜索字符串填充视图,并让用户选择有效的项目或完善搜索

IMO具有类似自动完成的功能,您最终将编写大量解析代码以获取字符串,然后可能会有服务器端的加载注意事项...

Hth。

在其他检查是否需要“刻面导航”的情况下。参考: http://www.alistapart.com/articles/design-patterns-faceted-navigation/

其他提示

因此,在我看来,您的主要挑战是

  1. 表明用户需要从列表中选择一个组织(仅从列表中)。
  2. 表明列表中有很多组织。
  3. 为用户提供一些手段,可以快速在列表中找到组织。

我想说的是一个选择器控件,该控件适合您的其余设计,并在其上方的搜索框上进行。然后,您应该在列表中页面页面,因为将有很多页面,其中许多元素表明用户绝对应该使用搜索。搜索本质上的作用类似于自动完成,但它不会更改文本的选项,而是会更改分页列表的内容。如果您按角色进行此操作(或使用 反应性扩展),很明显,您只是在过滤列表以使选择更容易。

您可以使用 CustomValidator 为了确保收藏中包含的文本框内容。

您可以使用AJAX自动完成控件: http://www.asp.net/ajax/ajaxcontroltoolookit/samples/autocomplete/autocomplete.aspx. 。如果用户输入了一定数量的字符,则可以选择仅进行查找。

您将创建一个静态Web方法来查询集合(可以使用LINQ)并返回匹配组织。

显然,您需要以后验证文本框输入。

是否可以更像一棵树的列表来构建您的列表,因此它不是一个列表。例如,您可以将“政府部门”之类的分组添加到其中。然后要求您的用户首先选择顶级分组,然后向他们展示该组中较短的组织列表?

在我看来,您的数据列表确实应该在数据库中或至少远离UI中存储。无论它真正存储在哪里,都为每个条目放置一个关键字,例如“收集”。关键字列表可以作为自动完整功能的一部分可用。然后单独搜索关键字。

如果您可以将项目分类为类别,是否可以使用某种树控制帮助?

因此,当用户单击节点时,您仅加载该节点中的项目。等等。

我会把它分成两条路。

使用自动完成的文本框,适用于键入正确标题的人(即收藏部);和一个单独的搜索按钮以搜索可能的匹配。搜索按钮将带您进入结果页面以选择所需的选择。此功能将类似于MSDN上的搜索方式。

最初,树视图听起来很酷,但是您确定单个分类会将数据减少到可管理的集合中吗?如果您的数据中有80%被归类为“政府部门”,这并不能真正对事情有所帮助。

问题是您想要的标准使用户可以将大型列表迅速分为易于消费的较小集合。此外,应该有足够的灵活性来应对数据的变化。

我建议使用iTunes这样的标记模式。在我的库中,“摇滚”描述了我的藏品的80% - 但对于像随机洗牌之类的东西仍然是一个有用的分类。我还可以堆叠标签,因此我可以使用类型=“摇滚”,十年=“ 1990”,然后将数据迅速筛选到感兴趣的任何内容。

在UI中,我建议一个允许用户应用“过滤器”的部分,这无非是为标签选择特定值。将列表分成页面,并让他们看到潜在匹配的计数。

风景: - 导航到Screen XYZ,并看到有10,000家公司可供选择 - 单击“分类”,然后选择“政府部门”,并且列表更新以表明现在有1,000。 - 单击“区域”,然后选择“南方”,然后查看我的列表下降到200。-按名称进行排序,然后选择(或滚动,任何内容)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top