ASP.NET Web Forms - XML-файл


Мы можем привязать XML-файл к списковым элементам управления.


XML-файл

Вот XML-файл с именем "countries.xml":

<?xml version="1.0" encoding="ISO-8859-1"?>

<countries>

<country>
<text>Норвегия</text>
<value>N</value>
</country>

<country>
<text>Швеция</text>
<value>S</value>
</country>

<country>
<text>Франция</text>
<value>F</value>
</country>

<country>
<text>Италия</text>
<value>I</value>
</country>

</countries>

Просмотреть этот XML-файл:countries.xml


Привязать DataSet к списковым элементам управления

Сначала импортируйте пространство имен "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

Чтобы привязать данные к элементу управления RadioButtonList, сначала создайте элемент управления RadioButtonList на странице .aspx (без каких-либо элементов asp:ListItem):

<html>
<body>

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

</body>
</html>

Затем добавьте скрипт, который создаёт XML DataSet и привязывает значения в XML DataSet к элементу управления RadioButtonList:

<%@ 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. Когда радиокнопка выбрана, в метке появится строка текста:

Пример

<%@ 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="Ваша любимая страна: " & 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>

Демо »

Другие расширения