Los últimos tutoriales de desarrollo web
 

ASP.NET Formularios Web - Archivos XML


Podemos enlazar un archivo XML para un control de lista.


Un archivo XML

Aquí es un archivo XML denominado "countries.xml" :

<?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>

Echar un vistazo al archivo XML: countries.xml


Enlazar un conjunto de datos a un control de lista

En primer lugar, importe el "System.Data" espacio de nombres. Necesitamos este espacio de nombres para trabajar con objetos DataSet. Incluir la siguiente directiva en la parte superior de una página .aspx:

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

A continuación, cree un conjunto de datos para el archivo XML y cargar el archivo XML en el conjunto de datos cuando se carga por primera vez la página:

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

Para enlazar el conjunto de datos a un control RadioButtonList, primero crear un control RadioButtonList (sin ningún asp: elementos ListItem) en una página .aspx:

<html>
<body>

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

</body>
</html>

A continuación, añadir el script que construye el conjunto de datos XML:

<%@ 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>

A continuación, añadimos una sub-rutina que se ejecuta cuando el usuario hace clic en un elemento en el control RadioButtonList. Cuando se hace clic en un botón de opción, aparecerá un texto en una etiqueta:

Ejemplo

<%@ 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>
Ver ejemplo »