2009-12-22 63 views
0

我有一個列表框控件,我從後面的頁面代碼中填充。當範圍可能太大時,我應該如何處理數字列表框?

它的工作原理與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()); 
} 

什麼是解決這個問題的正確方法是什麼?

+0

我不知道上限是對象在ListBox什麼,但是沒有人會想至200萬件在這樣的列表中滾動。我建議以某種方式分頁或分頁。 – JYelton 2009-12-22 19:51:12

+0

即使列表框能夠顯示很多條目,但它並不是用戶最喜歡的方式。你真的需要提出很多選擇嗎? – 2009-12-22 19:51:17

+1

當然,我不想滾動到2億個選項。我寧願在列表中搜索/過濾 – 2009-12-22 19:53:38

回答

6

你可以使用從AJAX工具包的NumericUpDown工具。它可以讓你輸入數字以及向上和向下滾動,而不需要一個變化的滾動條。

3

你有沒有考慮一下這個列表框將會是什麼樣的,如果它有2點億的選擇呢?

如果有什麼人希望選擇140235?

也許你能想到的一個不同的方式讓用戶選擇是多少?

難道他們在文本框中輸入呢?

2

我討厭這樣說,但不要。想想你的用戶 - 如果他們需要滾動瀏覽200,000,000個項目(根據你希望的假設的例子),他們將無法使用列表框。另外,你會用這種數據重載瀏覽器。

找到另一種方法。你可以允許自由形式的文本輸入(如果用戶輸入了非數字數據顯示錯誤 - 在RangeValidator將幫助那裏),你可以使用(如TenaciousImpy指明),NumericUpDown AJAX工具。還有其他選項。

一般來說,列表框和下拉列表框通常不應比一百個左右的項目更多。

或者,如Raymond Chen在過去一直說,如果你要問的限制,你可能做錯了什麼。

1

如果你正試圖把許多記錄到一個下拉列表,你正在做的事情是錯誤的。

通常情況下,用大量的記錄,一個顯示它的一個子集(例如,只有100出的百家萬),然後通過頁面到下一個100等等

0

如果你想將用戶輸入從1..n限制爲正整數,如何使用TextBox控件以及RangeValidator來驗證範圍?

如果您想允許多個值的選擇,請給用戶多個TextBoxes(可以動態生成),或者考慮簡單地允許用戶輸入逗號分隔的數字列表,並在您的代碼中解析它。我發現大多數用戶更喜歡鍵盤數據輸入,而不是「鼠標點擊」數據輸入 - 它要快得多。

相關問題