当范围可能太大时,我应该如何处理数字列表框?

时间:2009-12-22 19:48:00

标签: 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++)
{
    ListBox1.Items.Add(i.ToString());
}

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

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

如果它有2亿个选择,你有没有考虑过这个列表框会是什么样子?

如果有人想选择140,235怎么办?

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

他们可以在文本框中输入吗?

答案 2 :(得分:2)

我讨厌说出来,但不要。考虑一下您的用户 - 如果他们需要滚动浏览(根据您希望的假设示例)200,000,000项,他们将无法使用列表框。此外,您将使用这种数据超出浏览器的范围。

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

一般来说,列表框和下拉列表框通常不应超过一百个项目。

或者,正如Raymond Chen过去所说的,如果你不得不问一下限制,你可能会做错事。

答案 3 :(得分:1)

如果您尝试将这么多记录放入下拉列表中,那么您做错了。

通常情况下,有大量记录,一个显示它的一个子集(例如,只有100个hunderd千),然后翻页到下一个100等...

答案 4 :(得分:0)

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

如果要允许多个值的选择,请为用户提供多个TextBox(可以动态生成),或者考虑简单地允许用户输入逗号分隔的数字列表并在后面的代码中解析它。我发现大多数用户更喜欢键盘数据输入,而不是“鼠标点击”数据输入 - 它要快得多。