ASP.NET - File XML

Possiamo associare un file XML a un controllo elenco.

Un file XML

Ecco un file XML chiamato "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>

Consultare il file seguente:countries.xml

Associare il DataSet al controllo List

Prima di tutto, importare lo spazio dei nomi "System.Data". Abbiamo bisogno di questo spazio dei nomi per lavorare con l'oggetto DataSet. Inclusi nella parte superiore della pagina .aspx la seguente istruzione:

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

Quindi, crea un DataSet per questo file XML e carica il file XML nel DataSet durante il caricamento iniziale della pagina:

<script runat="server">
sub Page_Load
if Not Page.IsPostBack then
  dim mycountries=New DataSet
  mycountries.ReadXml(MapPath("countries.xml"))
fine if
fine sub

Se desidera associare questo DataSet al controllo RadioButtonList, prima di tutto creare un controllo RadioButtonList nella pagina .aspx (senza alcun elemento asp:ListItem):

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

Poi aggiungiamo lo script per costruire questo 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()
fine if
fine sub
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
</form>
</body>
</html>

Poi, aggiungiamo una subroutine che verrà eseguita quando l'utente clicca su un elemento del controllo RadioButtonList. Quando l'utente clicca su un pulsante radio, nel label apparirà un testo:

<%@ 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()
fine if
fine sub
sub displayMessage(s as Object,e As EventArgs)
lbl1.text="La tua nazione preferita è: " & rb.SelectedItem.Text
fine 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>

Mostra questo esempio