如何在ListBox中加载大量数据?ASP.NET MVC应用程序

jst*_*ele 2 ajax asp.net-mvc jquery listbox

我正在使用ASP.NET MVC应用程序.

要求用户能够从ListBox中选择可包含超过30,000个条目的项目.

是否有动态方法使用Ajax调用填充此ListBox的内容 - 这将表现良好?

只是在服务器上填充ListBox控件然后让用户等待页面呈现30,000个条目时,我会更好吗?

如果我采用某种jQuery解决方案,性能会更好吗?

关于如何最有效地处理这种情况的任何建议(没有客户改变要求:-))?

Vin*_*jip 9

这听起来像个坏主意 - 30,000个条目?如果您必须从这个尺寸的列表中选择,您会有什么感受?

对这种用例最好使用自动完成功能.


Est*_*ber 5

我不会像其他人那样尝试回答这个问题:

这种类型的控件在企业应用程序中非常常见:包含数千个条目的下拉控件和列表。

有些程序员只是用锤子敲螺丝。
(来源:mac.com

错误使用它的程序员通常会在发现加载表单需要非常长的时间时得到一个提示,即它可能不合适。

以下消息于 1996 年 12 月 11 日发布在 Visual Basic 程序员论坛上,是典型的:

我想用 2000 个项目填充一个列表框......这需要非常长的时间......超过 20 分钟。有任何想法吗?

1996 年 12 月 16 日发布的另一篇文章则不那么典型:

我正在寻找一个列表框控件,它可以……容纳大量条目(20,000+)

这种笨拙控制的借口通常是对全能的武装呼吁的误导性解释,“我们必须确保数据完整性。” 程序员想要确保用户指定了一个有效的条目;在他们看来,最好的方法是强制用户从列表中进行选择。如果列表中有 20、60 甚至 100 个项目,那就没问题了。除了这个数字之外,用户一次只能滚动少数项目的事实会导致控件变得笨拙。

想象一下,如果您的硬盘驱动器上没有文件夹和目录。每当您需要指定文件时,您都会看到一个下拉控件,其中包含硬盘驱动器上每个文件的名称,并要求您选择要打开的文件。很少有人,包括程序员,会认为这种方法是完全不可接受的。

所有数据都可以以某种有意义的方式组织起来,这将允许用户更快地访问他或她感兴趣的特定信息。例如,文件被组织到文件夹或目录中。员工通常按部门、职位或工资等级分类。设计接口以利用适当的组织将允许用户更快地定位所需信息,同时“确保数据完整性”。