请问在ASP.NET中有多少行绑定项目(从TABLE中选择COLUMN)的最佳方法是什么?数百万条目的数据绑定下拉列表
我现在已经被冻结ASP.NET页面,作为DROPDOWNLIST试图从SQL Server来填充,超过100万行数据。
感谢
雅法
请问在ASP.NET中有多少行绑定项目(从TABLE中选择COLUMN)的最佳方法是什么?数百万条目的数据绑定下拉列表
我现在已经被冻结ASP.NET页面,作为DROPDOWNLIST试图从SQL Server来填充,超过100万行数据。
感谢
雅法
最好的办法是不要做了!没有用户希望从一百万行最好的办法是有某种渐进式搜索,当用户开始输入给他们的选项列表中选择
我不认为你应该绑定100万条记录到DropDownList
。这对可用性非常不利,用户应该如何找到他们想要的选项?
如果可能的话,这些应该被组合到级联DropDownList
的,以避免超时问题,并提高可用性。
这里是ASP.NET AJAX Control Toolkit的级联下拉的例子:
http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx
考虑,冻结时间为一大警示信号。为什么你应该让用户选择1000K的项目。这将是一个很大的用户界面失败。通过JSON webservice调用使用自动完成控件。
最好的方法是让网格页面和DropDowns过滤。
在网格页面你只显示前X记录和用户可以移动到下一个/上/首/末页等等。
在过滤控制你问用户键入的第一个X字符,然后只显示匹配的记录。
对于这样的大名单你需要问自己的东西第一
最好的办法是排序在类别和用户显示一个向导一样由于我怀疑任何人都会阅读100万条记录,因此一步一步地处理了几个下拉菜单。
如果你还是想要去的那怪异的步骤显示,在短短一个下拉一切,您可以轻松地将结果缓存一段时间,当请求fillup数据时,它会用什么内存并从未到达数据库。
或者,如果它的东西,并没有带来太大变化,你可以从文本文件加载巫一个百万行的更快连接到数据库......然后刷新请求或自动该文件。
感谢所有你的提示响应...... @ balexandre,我如何将文本文件绑定到dropdownList? – user851971 2012-01-17 11:16:17
你使用'DataSource'控件为你做了辛苦工作,这里是'XmlDataSource' [示例](http://www.codeproject.com/KB/webforms/XMLDataSource.aspx),或者你可以简单的解析它使用'System.IO.File.ReadAllLines'方法并填充下拉列表,这是最快的方法。 – balexandre 2012-01-17 12:01:58
如果你真的想这样做,首先你可以绑定你的对象后搜索用户,否则如果用户搜索没有任何绑定的所有。在.net 4中,你可以使用Linq,最好的方式来让你的数据使用这种技术。但它太多,以显示给你的用户。
正如每个答案所述,将100万条记录存入下拉列表并不是一个实际的选择。来自Smashing Magazine的人们写了一个更好的方法 - 类似的article - 专门关注用户体验大降,非常值得一读。
可以友好地显示我可以如何实现渐进式搜索,可以根据数百万行推荐建议....我是VB(Asp.net)的noob ...谢谢! – user851971 2012-01-17 16:00:30