ASP.NET Web Forms - Archivo XML
Podemos enlazar archivos XML a controles de lista.
Un archivo XML
Aquí hay un archivo XML llamado "countries.xml":
<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>
Ver este archivo XML:countries.xml
Enlazar DataSet al control List
Primero, importa el espacio de nombres "System.Data". Necesitamos este espacio de nombres para trabajar con el objeto DataSet. Incluye la siguiente directiva en la parte superior de la página .aspx:
A continuación, crea un DataSet para el archivo XML y carga este archivo XML en el DataSet cuando la página se cargue por primera vez:
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath("countries.xml"))
end if
end sub
Para enlazar datos al control RadioButtonList, primero debes crear un control RadioButtonList (sin ningún elemento asp:ListItem) en la página .aspx:
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>
Luego agrega el script que crea el DataSet XML y enlaza los valores del DataSet XML al control RadioButtonList:
<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>
Luego agregamos una subrutina que se ejecutará cuando el usuario haga clic en un elemento del control RadioButtonList. Cuando se hace clic en un botón de opción, aparece una línea de texto en la etiqueta (label):
Ejemplo
<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 demostración »
Otras extensiones