ASP.NET Web Forms - Fichier XML
Nous pouvons lier un fichier XML à des contrôles de liste.
Un fichier XML
Voici un fichier XML nommé "countries.xml" :
<countries>
<country>
<text>Norvège</text>
<value>N</value>
</country>
<country>
<text>Suède</text>
<value>S</value>
</country>
<country>
<text>France</text>
<value>F</value>
</country>
<country>
<text>Italie</text>
<value>I</value>
</country>
</countries>
Voir ce fichier XML :countries.xml
Lier DataSet aux contrôles de liste
Tout d'abord, importez l'espace de noms "System.Data". Nous avons besoin de cet espace de noms pour travailler avec l'objet DataSet. Incluez la directive suivante en haut de la page .aspx :
Ensuite, créez un DataSet pour le fichier XML et chargez le fichier XML dans le DataSet lors du premier chargement de la page :
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath("countries.xml"))
end if
end sub
Pour lier des données au contrôle RadioButtonList, créez d'abord un contrôle RadioButtonList dans la page .aspx (sans aucun élément asp:ListItem) :
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>
Ajoutez ensuite le script qui crée le DataSet XML et lie les valeurs du DataSet XML au contrôle 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>
Ensuite, nous ajoutons une sous-routine qui sera exécutée lorsque l'utilisateur clique sur un élément du contrôle RadioButtonList. Lorsqu'un bouton radio est cliqué, une ligne de texte apparaîtra dans l'étiquette :
Exemple
<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="Votre pays préféré est : " & 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>
Démo »
Autres extensions