ASP.NET - Αντικείμενο Hashtable

Το αντικείμενο Hashtable περιέχει στοιχεία που εκφράζονται με ζεύγη κλειδιού/τιμής.

Δημιουργία Hashtable

Το αντικείμενο Hashtable περιέχει στοιχεία που εκφράζονται με ζεύγη κλειδιού/τιμής. Το κλειδί χρησιμοποιείται ως δείκτης, μέσω της αναζήτησης του κλειδιού, μπορεί να γίνει γρήγορη αναζήτηση της τιμής.

Προσθέτουμε στοιχεία στο Hashtable μέσω της μεθόδου Add()

Το παρακάτω κώδικας δημιουργεί ένα αντικείμενο Hashtable με το όνομα mycountries και προσθέτει τέσσερα στοιχεία:

<script runat="server">
Sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
end if
end sub
</script>

Διέπαυση δεδομένων

Το αντικείμενο Hashtable μπορεί αυτόματα να δημιουργήσει κείμενο και τιμή για τα παρακάτω controls:

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

Για να συνδέσουμε δεδομένα σε κάποιο control RadioButtonList, πρώτα δημιουργήστε το control RadioButtonList σε μια σελίδα .aspx (χωρίς στοιχεία asp:ListItem)

<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Καθώς τότε προσθέτουμε το σενάριο δημιουργίας λίστας:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
end if
end sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Καθώς τότε προσθέτουμε μια συνάρτηση υποπρογράμματος που εκτελείται όταν ο χρήστης κάνει κλικ σε κάποιο στοιχείο του control RadioButtonList.

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("C","China")
  mycountries.Add("S","Sweden")
  mycountries.Add("F","France")
  mycountries.Add("I","Italy")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
end if
end sub
sub displayMessage(s as Object,e As EventArgs)
lbl1.text="Η αγαπημένη σας χώρα είναι: " & rb.SelectedItem.Text
end sub
</script>
<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>

Εμφάνιση αυτού του παραδείγματος

Σημείωση:Δεν μπορείτε να επιλέξετε τον τρόπο οργάνωσης των στοιχείων που προσθέτετε στη Hashtable. Για να τα οργανώσετε αλφαβητικά ή αριθμητικά, χρησιμοποιήστε το αντικείμενο SortedList.