آموزش ASP.Net به زبان ساده > آموزش مدل فرم های وب ASP.Net Web
Forms
درس دهم : آموزش اتصال به شی داده ای ArrayList در فرم های وب ASP.Net
مقدمه :
یک ArrayList مجموعه ای از آیتم هاست که می تواند شامل یک آرایه از داده ها ( Values
) باشد .
هر آیتم جدید به وسیله متد ( )Add ، پس از تعریف خود شی ArrayList بدان اضافه می شود
. کد زیر نحوه تعریف یک شی ArrayList و مقدار دهی 4 عضو برای آن را نشان می دهد :
|
کد
|
<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 :
نکته 1 : کد تعریف شی ArrayList را همانطور که در مثال فوق مشاهده
کردید ، درون رویداد Page_Load صفحه قرار داده ایم ، تا به محض اجرای صفحه ، شی تشکیل
شود .
نکته 2 : به صورت پیش فرض ، هر شی ArrayList برای 16 عنصر جای خالی
ایجاد می کند ( حتی اگر شما عنصر کمتری در آن تعریف نمایید ( .
اما می توانید با استفاده از متد ( )TrimToSize ، حد نهایی اعضای شی را محدود نمایید
. همانند کد اصلاح شده زیر :
|
کد
|
<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>
|
نکته 3 : همچنین می توانید با استفاده از متد ( )Sort ، اعضای یک
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()
mycountries.Sort()
end if
end sub
</script>
|
همچنین برای بر عکس کردن جهت مرتب سازی از متد ( )Reverse ، همانند کد اصلاح شده زیر
پس از متد ( )Sort استفاده می شود :
|
کد
|
<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>
|
اتصال کنترل مورد نظر به شی ArrayList ( انجام عمل Data Binding ) :
یک شی ArrayList که قبلا مقدار دهی شده باشد ، می تواند به صورت اتوماتیک و با استفاده
از قابلیت Data Binding ، اطلاعات اعضای خود را به کنترل های آیتم وار زیر ، متصل کند
:
- <asp:RadioButtonList>
- <asp:CheckBoxList>
- <asp:DropDownList>
- <asp:Listbox>
برای اتصال کنترل های آیتم وار به شی ArrayList ، ابتدا یک کنترل ( برای مثال یک <asp:RadioButtonList>
را بدون هیچ تگ آیتم آن ، یعنی <asp:ListItem> همانند کد زیر ، در صفحه ایجاد
نمایید :
|
کد
|
<form id="Form1" runat="server">
<asp:RadioButtonList id="rb" runat="server" />
</form>
|
سپس کد ساخت و مقدار دهی شی ArrayList را در رویداد Page_Load صفحه ، همانند کد زیر
تعریف نموده تا به محض اجرای صفحه ، شی 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()
mycountries.Sort()
rb.DataSource=mycountries
rb.DataBind()
end if
end sub
</script>
<html>
<body>
<form id="Form1" runat="server">
<asp:RadioButtonList id="rb" runat="server" />
</form>
</body>
</html>
|
|
خروجی
|
مشاهده خروجی مثال
|
توضیحات کد مثال :
شناسه ( id ) کنترل asp:RadioButtonList در مثال فوق ، " rb " تعیین شده است . به وسیله
خاصیت DataSource در کد تعریف شی ArrayList ، آن شی را به عنوان منبع داده ای برای
کنترل رادیویی خود تعریف کرده ایم .
rb.DataSource=mycountries
همچنین متد ( )DataBind در کنترل <asp:RadioButtonList> ، باعث اتصال کنترل به
شی داده ای و انتقال اطلاعات از آن شده است .
نکته مهم : در مثال فوق مقدار هر آیتم شی داده ای ArrayList ، به
عنوان متن ( Text ) و مقدار ( Value ) برای آیتم های کنترل <asp:RadioButtonList>
تعیین می شود . به علت اینکه این شی داده ای ، یک آرایه ی یک بعدی است . اما برای تعیین
مقادیر متفاوت برای متن و مقدار در آیتم های کنترل های لیست وار ، بایستی از آرایه
ها و اشیای داده ای دو بعدی مثل Hashtable یا SortedList که در درس های بعدی به آن
خواهیم پرداخت .
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :