1

请在 ASP.NET 上将项目从(从表中选择列)与一百万行绑定的最佳方法是什么。

我现在所拥有的是冻结 ASP.NET 页面,因为 dropdownList 试图从 SQL SERVER 填充超过一百万行数据。

谢谢

雅法

4

7 回答 7

2

对于这么大的清单,您需要先问自己一些事情

  • 您真的想在下拉列表中放置 100 万行吗?
  • 根据先前的选择显示几个下拉菜单并填充下一个下拉菜单不是更容易吗?
  • 您可以有一个模拟下拉列表的 div,当滚动条到达末尾时,您可以加载更多行...

最好的方法是按类别分类并向用户显示一个类似向导的逐步过程,其中包含几个下拉列表,因为我怀疑任何人都会阅读 100 万条记录。

如果您仍然想在一个下拉列表中显示所有内容的奇怪步骤,您可以轻松地将结果缓存一段时间,并且当请求填充数据时,它将使用内存中的内容并且从未到达数据库。

或者,如果它没有太大变化,您可以从文本文件中加载 100 万行,这样连接到数据库的速度会更快……然后根据请求或自动刷新该文件。

于 2012-01-17T09:37:36.503 回答
1

我认为您不应该将 100 万条记录绑定到DropDownList. 这对可用性非常不利,用户应该如何找到他们想要的选项?

如果可能的话,这些应该被分组到 cascadingDropDownList中以避免超时问题并提高可用性。

以下是 ASP.NET AJAX 控件工具包级联下拉列表的示例:

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

于 2012-01-17T09:34:41.573 回答
0

最好的办法就是不做!没有用户想从一百万行中进行选择,最好的办法是进行某种渐进式搜索,当用户开始输入时,他们会得到一个选项列表

于 2012-01-17T09:34:28.213 回答
0

将冻结时间视为一个重要的警告信号。为什么要让用户在 1000K 的项目中进行选择。那将是一个很大的 UI 失败。使用带有 JSON Web 服务调用的自动完成控件。

于 2012-01-17T09:36:00.603 回答
0

最好的方法是让 Grids 分页并让 DropDowns 过滤。

在网格页面中,您只显示前 X 条记录,用户可以移动到下一页/上一页/第一页/最后一页等等。

在过滤控件中,您要求用户键入前 x 个字符,然后仅显示匹配的记录。

于 2012-01-17T09:36:05.527 回答
0

如果您真的想这样做,首先您可以在与您的用户搜索后绑定您的对象,否则如果用户搜索没有绑定所有内容。在 .net 4 中,您可以使用 Linq,获取数据的最佳方式是使用此技术。但它太多了,无法向您的用户展示。

于 2012-01-17T09:42:39.693 回答
0

正如这里的每个答案所述,将一百万条记录竞价到下拉列表不是一个实际的选择。来自Smashing Magazine的人们写了一篇关于更好方法的精彩(类似)文章- 特别关注大型下拉菜单的用户体验,非常值得一读。

于 2012-01-17T09:51:00.100 回答