C# 当范围可能太大时,我应该如何接近数字列表框?

C# 当范围可能太大时,我应该如何接近数字列表框?,c#,visual-studio-2008,listbox,asp.net-3.5,C#,Visual Studio 2008,Listbox,Asp.net 3.5,我有一个列表框控件,我从后面的页面代码填充它 它适用于从1到100的值,但是如果我需要的范围真的很大呢?例如,1到200000000 目前我使用的是: <asp:ListBox ID="ListBox1" runat="server" EnableTheming="True" Height="20px" Width="54px"> </asp:ListBox> 在我的代码背后: for (int i = 0; i < 100; i++) { List

我有一个列表框控件,我从后面的页面代码填充它

它适用于从1到100的值,但是如果我需要的范围真的很大呢?例如,1到200000000

目前我使用的是:

<asp:ListBox ID="ListBox1" runat="server" EnableTheming="True" 
 Height="20px" Width="54px">

</asp:ListBox>
在我的代码背后:

for (int i = 0; i < 100; i++)
{
    ListBox1.Items.Add(i.ToString());
}

解决这个问题的正确方法是什么?

您可以使用AJAX工具包中的工具。它允许您输入数字以及上下滚动,而无需改变滚动条。

您考虑过如果这个列表框有2亿个选项,它会是什么样子吗

如果有人想选择140235怎么办

也许您可以想出一种不同的方式让用户选择号码


他们能在文本框中输入吗?

我不想说,但不要说。想想你的用户——如果他们需要按照你的假设例子滚动200000000个项目,他们将无法使用列表框。此外,您还将在浏览器中加载此类数据

找到另一种方法。如果用户输入了非数字数据,您可以允许自由格式的文本输入并显示错误-RangeValidator将提供帮助,您可以使用NumericUpDown AJAX工具。还有其他选择

一般来说,列表框和下拉列表框的项目通常不应超过100个左右


或者,正如过去所说,如果你不得不询问限制,你可能做错了什么

如果您试图将那么多记录放入下拉列表中,则说明您做错了


通常情况下,对于大量记录,一个会显示其中的一个子集,例如,几十万个记录中只有100个记录,然后翻页到下一个100个记录等等。

如果要将用户输入限制为1..n的正整数,使用TextBox控件和RangeValidator来验证范围如何


如果您希望允许多个值的选择,则给用户多个文本框可以动态生成,或者简单地允许用户输入逗号分隔的数字列表并在代码后面解析它。我发现大多数用户更喜欢键盘数据输入,而不是鼠标点击数据输入,这要快得多。

我不确定列表框中对象的上限是多少,但是没有人会希望在这样的列表中滚动2亿个项目。我建议以某种方式对项目进行分页或划分。即使列表框能够显示那么多条目,在我看来,这并不是最方便用户的方式。你真的需要提供那么多选项吗?当然,我不想滚动到2亿个选项。我宁愿在列表中进行搜索/筛选用户友好性甚至不是问题。没有用户会看到此页面。一个有200M条目的列表框会导致页面长达数GB。下载需要几个小时。