آموزش WebForm-شیء Hashtable

چاپ

شیء HashTable حاوی آیتم هایی به صورت Key/Value می باشد.


ایجاد یک Hashtable

شیء HashTable حاوی آیتم هایی به صورت Key/Value می باشد.

کلیدها به عنوان اندیس استفاده می شوند، و جستجوی خیلی سریعی روی مقادیر می تواند از طریق جستجوی کلیدها انجام شود.

آیتم ها با استفاده از متد ()ADD به Hashtable اضافه می گردند.

کد زیر یک HashTable با نام mycountries ایجاد می کند و چهار عنصر به آن اضافه می کند:

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

Data Binding

شیء Hashtable ممکن است به صورت اتوماتیک، متن و مقادیر را برای کنترل های زیر ایجاد کند:

برای اتصال یک کنترل RadioButtonList، ابتدا یک کنترل RadioButtonList (بدون استفاده از عنصر asp:ListItem) در یک صفحه aspx. ایجاد فرمایید:

<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("N","Norway")
  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>

سپس زیرروالی را به کد اضافه می کنیم تا هنگامی که کاربر روی یک عنصر در کنترل RadioButtonList کلیک می کند، اجرا شود. هنگامی که دکمه رادیویی کلیک شد، متنی در label ظاهر می شود:

مثال (آموزش WebForm-شیء Hashtable)

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New Hashtable
  mycountries.Add("N","Norway")
  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="Your favorite country is: " & 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 استفاده نمایید.