ASP.NET Web Forms - ArrayList 對象


ArrayList 對象是包含單個數(shù)據值的項目的集合。



嘗試一下 - 實例

ArrayList DropDownList

ArrayList RadioButtonList


創(chuàng)建 ArrayList

ArrayList 對象是包含單個數(shù)據值的項目的集合。

通過 Add() 方法向 ArrayList 添加項目。

下面的代碼創(chuàng)建了一個名為 mycountries 的 ArrayList 對象,并添加了四個項目:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
end if
end sub
</script>

在默認情況下,一個 ArrayList 對象包含 16 個條目??赏ㄟ^ TrimToSize() 方法把 ArrayList 調整為最終尺寸:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
mycountries.TrimToSize()
end if
end sub
</script>

通過 Sort() 方法,ArrayList 也能夠按照字母順序或者數(shù)字順序進行排序:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
mycountries.TrimToSize()
mycountries.Sort()
end if
end sub
</script>

要實現(xiàn)反向排序,請在 Sort() 方法后應用 Reverse() 方法:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add("Norway")
mycountries.Add("Sweden")
mycountries.Add("France")
mycountries.Add("Italy")
mycountries.TrimToSize()
mycountries.Sort()
mycountries.Reverse()
end if
end sub
</script>


綁定數(shù)據到 ArrayList

ArrayList 對象可為下列的控件自動生成文本和值:

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

為了綁定數(shù)據到 RadioButtonList 控件,首先要在 .aspx 頁面中創(chuàng)建一個 RadioButtonList 控件(不帶任何 asp:ListItem 元素):

<html>
<body>

<form runat="server">
<asp:RadioButtonList id="rb" runat="server" />
</form>

</body>
</html>

然后添加創(chuàng)建列表的腳本,并且綁定列表中的值到 RadioButtonList 控件:

實例

<script  runat="server">
Sub Page_Load
if Not Page.IsPostBack then
   dim mycountries=New ArrayList
   mycountries.Add("Norway")
   mycountries.Add("Sweden")
   mycountries.Add("France")
   mycountries.Add("Italy")
   mycountries.TrimToSize()
   mycountries.Sort()
   rb.DataSource=mycountries
   rb.DataBind()
end if
end sub

sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Your favorite country is: " & rb.SelectedItem.Text
end sub
</script>

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form>

</body>
</html>

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例

RadioButtonList 控件的 DataSource 屬性被設置為該 ArrayList,它定義了這個 RadioButtonList 控件的數(shù)據源。RadioButtonList 控件的 DataBind() 方法把 RadioButtonList 控件與數(shù)據源綁定在一起。

注釋:數(shù)據值作為控件的 Text 和 Value 屬性來使用。如需添加不同于 Text 的 Value,請使用 Hashtable 對象或者 SortedList 對象。