آموزش ASP.Net به زبان ساده > آموزش مدل فرم های وب ASP.Net Web
Forms
درس سیزدهم : اتصال یک فایل XML به کنترل سرور ASP.Net
مقدمه :
همانطور که در بخش
آموزش XML در سایت Developer1.ir آموختید ، XML یک روش نشانه گذاری برای دسته
بندی و انتقال داده ها بین سیستم های مختلف است .
یک فایل XML ، برای مثال می تواند شامل اطلاعات راجع به کشورهای مختلف باشد . با استفاده
از یک شی DataSet ( شی DataSet ، یک شی برای خواندن و انتقال اطلاعات در ASP.Net است
) ، فایل XML خود را به کنترل های آیتم وار ASP.Net مثل لیست ها ، کادرهای کشویی و
... متصل کرده و اطلاعات آن را نمایش دهید .
به فایل XML زیر دقت نمایید . این فایل شامل اطلاعات تعدادی کشور به صورت ساختاری است
که هر کشور به صورت یک آیتم <country> بوده و دارای دو جزء متن یا <text>
و مقدار <value> می باشند .
|
کد
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<countries>
<country>
<text>Norway</text>
<value>N</value>
</country>
<country>
<text>Sweden</text>
<value>S</value>
</country>
<country>
<text>France</text>
<value>F</value>
</country>
<country>
<text>Italy</text>
<value>I</value>
</country>
</countries>
|
|
خروجی
|
مشاهده خروجی فایل XML
|
شما می توانید این جفت های متن / مقدار را برای کنترل های سرور ASP.Net مثل کنترل های
زیر منتقل کرده و نمایش دهید :
- <asp:RadioButtonList>
- <asp:CheckBoxList>
- <asp:DropDownList>
- <asp:Listbox>
نحوه اتصال فایل XML به یک کنترل سرور ASP.Net :
در مرحله اول ، بایستی namespace با مقدار " System.Date " را در ابتدای صفحه وارد
( Import ) نمایید . زیرا برای کار با شی داده ای DataSet که وظیفه اش خواندن اطلاعات
فایل XML و انتقال آنها به کنترل سرور ASP.Net است ، به این namespace نیاز داریم .
برای این منظور کد اعلان زیر را در ابتدای صفحه خود وارد نمایید :
|
کد
|
<%@ Import Namespace="System.Data" %>
|
در مرحله بعدی ، در رویداد لود اولیه صفحه ( Page_Load ) ، یک شی DataSet را برای خواندن
فایل XML و ذخیره اطلاعات آن درون شی DataSet به صورت زیر تعریف می کنیم :
|
کد
|
<script runat="server">
sub Page_Load
if Not
Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath("countries.xml"))
end if
end sub
</script>
|
نکته : توسط دستور ( )ReadXml ، فایل XML را با ارسال آدرس آن به
عنوان پارامتر خوانده و در شی DataSet مورد نظر می ریزیم .سپس برای اتصال کنترل ASP.Net
مورد نطرمان به شی DataSet ، یک کنترل لیست وار ( برای مثال asp:RadioButtonList )
را بدون هیچ گونه عنصر فرزند ( asp:ListItem ) همانند کد زیر ، تعریف می کنیم :
|
کد
|
<form id="Form1" runat="server">
<asp:RadioButtonList
id="rb" runat="server" />
</form>
|
سپس برای اتصال کنترل به شی داده ای DataSet ، دستورات لازم را پس از دستور خواندن
فایل XML ، همانند کد زیر ، درون رویداد لود اولیه صفحه ( Page_Load ) قرار می دهیم
. در نهایت کد صفحه به صورت زیر خواهد شد :
|
کد
|
<script runat="server">
Sub Page_Load
if Not Page.IsPostBack
then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath("countries.xml"))
rb.DataSource=mycountries
rb.DataValueField="value"
rb.DataTextField="text"
rb.DataBind( )
end if
end sub
</script>
<html>
<body>
<form id="Form1" runat="server">
<asp:RadioButtonList
id="rb" runat="server" />
</form>
</body> </html>
|
|
خروجی
|
مشاهده خروجی مثال
|
نمایش متن آیتم انتخاب شده در کنترل لیست وار ASP.Net :
در مرحله آخر از این درس ، در رویداد onSelectedIndexChanged کنترل asp:RadioButtonList
، که هر بار که یک آیتم کنترل را انتخاب می کنید ، رخ می دهد ، تابعی به نام displaymassage
را تعریف نموده ایم ، تا عنوان ( خاصیت Text ) آیتم انتخاب شده را به همراه یک متن
ثابت از پیش تعیین شده نمایش دهد ، به صورت زیر :
|
کد
|
<script runat="server">
Sub Page_Load
if Not Page.IsPostBack
then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath("countries.xml"))
rb.DataSource=mycountries
rb.DataValueField="value"
rb.DataTextField="text"
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 id="Form1" runat="server">
<asp:RadioButtonList id="rb" runat="server " AutoPostBack="True"
onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server"
/></p>
</form>
</body>
</html>
|
|
خروجی
|
مشاهده خروجی مثال
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :