ASP.NET - فایل XML

ما می‌توانیم فایل XML را به کنترل لیست پیوند دهیم.

یک فایل XML

یک فایل XML به نام "countries.xml" وجود دارد:

<?xml version="1.0" encoding="ISO-8859-1"?>
<countries>
<country>
  <text>China</text>
  <value>C</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>

لطفاً این فایل را بررسی کنید:countries.xml

پیوند دادن DataSet به کنترل List

ابتدا نام فضای "System.Data" را وارد کنید. ما نیاز به این فضای با DataSet داریم. این دستور را در بالای صفحه .aspx قرار دهید:

<%@ Import Namespace="System.Data" %>

سپس، یک DataSet برای این فایل XML ایجاد کنید و در اولین بار بارگذاری صفحه این فایل 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

برای پیوند دادن این DataSet به کنترل RadioButtonList، ابتدا یک کنترل RadioButtonList در صفحه .aspx ایجاد کنید (بدون هیچ asp:ListItem):

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

سپس اسکریپت برای ساخت این XML DataSet را اضافه کنید:

<%@ Import Namespace="System.Data" %>
<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 runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
</form>
</body>
</html>

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

<%@ Import Namespace="System.Data" %>
<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 runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form>
</body>
</html>

این مثال را نمایش دهید