ASP NET - ArrayList 对象

ArrayList 对象是包含单一数据值的项目的集合。

实例

创建 ArrayList

ArrayList 对象是包含单一数据值的项目的集合。

通过 Add() 方法向 ArrayList 添加项目。

下面的代码创建了一个新的 ArrayList 对象,名为 mycountries,并添加了四个项目:

  1. <script runat="server">
  2. Sub Page_Load
  3. if Not Page.IsPostBack then
  4. dim mycountries=New ArrayList
  5. mycountries.Add("China")
  6. mycountries.Add("Sweden")
  7. mycountries.Add("France")
  8. mycountries.Add("Italy")
  9. end if
  10. end sub
  11. </script>

默认地,一个 ArrayList 对象包含 16 个条目。可通过 TrimToSize() 方法把 ArrayList 调整为最终大小:

  1. <script runat="server">
  2. Sub Page_Load
  3. if Not Page.IsPostBack then
  4. dim mycountries=New ArrayList
  5. mycountries.Add("China")
  6. mycountries.Add("Sweden")
  7. mycountries.Add("France")
  8. mycountries.Add("Italy")
  9. mycountries.TrimToSize()
  10. end if
  11. end sub
  12. </script>

通过 Sort() 方法,ArrayList 也能够按照字母顺序或者数字顺序进行排序:

  1. <script runat="server">
  2. Sub Page_Load
  3. if Not Page.IsPostBack then
  4. dim mycountries=New ArrayList
  5. mycountries.Add("China")
  6. mycountries.Add("Sweden")
  7. mycountries.Add("France")
  8. mycountries.Add("Italy")
  9. mycountries.TrimToSize()
  10. mycountries.Sort()
  11. end if
  12. end sub
  13. </script>

要实现颠倒的排序,请在 Sort() 方法后应用 Reverse() 方法:

  1. <script runat="server">
  2. Sub Page_Load
  3. if Not Page.IsPostBack then
  4. dim mycountries=New ArrayList
  5. mycountries.Add("China")
  6. mycountries.Add("Sweden")
  7. mycountries.Add("France")
  8. mycountries.Add("Italy")
  9. mycountries.TrimToSize()
  10. mycountries.Sort()
  11. mycountries.Reverse()
  12. end if
  13. end sub
  14. </script>

把数据绑定到 ArrayList

ArrayList 对象可向下面这些控件自动地生成文本和值:

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

如需把数据绑定到一个 RadioButtonList 控件,首先请在一个 .aspx 页面中创建 RadioButtonList 控件(请注意,没有任何 asp:ListItem 元素):

  1. <html>
  2. <body>
  3.  
  4. <form runat="server">
  5. <asp:RadioButtonList id="rb" runat="server" />
  6. </form>
  7.  
  8. </body>
  9. </html>

然后添加构建列表的脚本,并把列表中的值绑定到该 RadioButtonList 控件:

  1. <script runat="server">
  2. Sub Page_Load
  3. if Not Page.IsPostBack then
  4. dim mycountries=New ArrayList
  5. mycountries.Add("China")
  6. mycountries.Add("Sweden")
  7. mycountries.Add("France")
  8. mycountries.Add("Italy")
  9. mycountries.TrimToSize()
  10. mycountries.Sort()
  11. rb.DataSource=mycountries
  12. rb.DataBind()
  13. end if
  14. end sub
  15. </script>
  16.  
  17. <html>
  18. <body>
  19.  
  20. <form runat="server">
  21. <asp:RadioButtonList id="rb" runat="server" />
  22. </form>
  23.  
  24. </body>
  25. </html>

RadioButtonList 控件的 DataSource 属性被设置为该 ArrayList,它定义了这个 RadioButtonList 控件的数据源。RadioButtonList 控件的 DataBind() 方法把 RadioButtonList 控件与数据源绑定在一起。

注释:数据值作为控件的 Text 和 Value 属性来使用。如需添加不同于 Text 的 Value,既可以使用 Hashtable 对象,也可以使用 SortedList 对象。