2009-09-14 87 views
1

我正在构建一个Silverlight应用程序,其中一个任务将涉及用户从约1300个项目列表中选择一个项目。将这个列表呈现给用户的最好方法是什么?我认为ComboBox中的1300个项目太多了。是吗?这种情况的最佳做法是什么?该项目是有一个模式,如库存地点:如何提供大量的物品供用户选择?

行1 - 过道1 - 1级
行1 - 过道1 - 2级
...
行1 - 2过道 - 1级
...
第2排 - 过道1 - 第1层
等等。

还会有一些其他的地点,如:货运码头,临时区域等..

我想可能有一个文本框和列表框在列表框将开始用火柴被填充到用户什么进入文本框。数据可能来自Web服务或存储在独立存储中?

回答

2

是的,1300对于组合框太多了。使用组合框在网站上选择我的国家似乎总是处于边缘位置,而1300比这更多。

对于您的数据结构,我强烈建议选择行,然后过道,然后将其作为三个独立的事物。每次更新下一个框。在每个选择中,列表框比组合框的使用速度更快,但占用更多的屏幕空间。

+0

我的第一冲动是有三个下拉列表框或列表框。第一个给出了一个行列表。一旦用户选择第二个填充该行中的通道列表。一旦选定了,第三个填充了一个级别列表。或者,让用户选择一行,然后用过道列表显示一个新屏幕。无论哪种方式,每次选择都是往返服务器。 – Jay 2009-09-14 05:48:45

+0

关于3个下拉列表,我仍然需要那些不属于'模式'的其他位置。如何将主列表拆分成行,过道和级别?一旦用户做出选择,如何将3个选择合并为一个? 3个服务电话?一个服务电话,然后在客户端分解? – DaveB 2009-09-16 23:34:09

1

使用上面的编辑框根据用户输入的文本过滤列表的列表(如果有更多信息,请使用表格)。

这与问题中的建议不同,默认情况下显示所有数据,然后将其过滤。

1

这听起来像您的项目高度分组。这意味着您可以使用树状视图来显示项目,或者甚至可以显示可以选择区域的图像(平面布局图)。

有一个带有自动完成的文本框(以及在文本框旁边实时更新20个最佳猜测列表)将成为解决这个问题的老手段。

+0

我同意treeview的想法,但不同意自动完成是“老傻瓜”。自动完成是非常web 2.0(谷歌建议,堆栈溢出等)。另一方面,树视图声音更老式(Outlook,Windows,Winforms等) – 2009-09-14 21:20:49

0

我同意@tom和@davidrutten。树形视图或自动完成类型控件听起来最好。看看TreeView和AutoCompleteBox控件中的Silverlight toolkit

+0

AutoCompleteBox可能工作。每次页面呈现时,我是否需要下载全部1300个位置?也许在应用程序中全局存储? AutoCompleteBox是否允许使用ASHX服务来填充它(比如SilverlightFX可以)?没有那样看。使用TextBox仍然不会限制选择。我会研究TreeView。 – DaveB 2009-09-16 23:40:12

+0

您可能想要在它进入AutoCompleteBox之前进行过滤。尽管如此,你可以使用Autocompletebox控制粒度。这是我最后一个项目,我处理文本更改事件,每次都调用我的Web服务来获取20个项目的列表。如果需要,我也可以使用AutoCompleteBox进行进一步筛选。 我不确定ashx有多少内置的支持,但是你应该能够以某种方式使用它。如果你尝试它,发布你的发现。 – 2009-09-18 02:15:30

相关问题