J'ai été intéressé de savoir si asp.net nous permet de générer dynamiquement du HTML en ligne sur la page .aspx Source (pas le code-behind).Générer dynamiquement du code HTML dans ASP.NET
Pour le test j'ai créé la page .aspx simple suivante ...
Dans mon asp.net code-behind je les suivantes:
protected List<string> myList = null;
protected void Page_Load(object sender, EventArgs e)
{
if (myList == null)
myList = new List<string>();
myList.Add("One String");
myList.Add("Two String");
myList.Add("Three String");
myList.Add("Four String");
this.Repeater1.DataSource = myList;
this.Repeater1.DataBind();
}
Sur la page source correspondante je:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<ol>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li>
<%# DataBinder.GetDataItem(myList) %>
</li>
</ItemTemplate>
</asp:Repeater>
</ol>
</body>
</html>
La page .aspx résultante est:
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<ol>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
</body>
</html>
Notez que le contrôle Repeater a effectivement créé les quatre éléments de la liste. Cependant, le contenu (One String, Two String, etc) de la liste myList n'est pas venu pour le tour.
Que dois-je faire pour évaluer la liste myList et obtenir ses valeurs dans les balises d'élément de liste? En passant, je ne suis pas concerné par la façon d'utiliser le contrôle Repeater spécifiquement, donc s'il y a une solution à ce problème qui n'inclut pas le contrôle Repeater, ça me va.
Remarque: Je suis conscient que je peux lier la liste générique "myList" à un asp: BulletedList et obtenir le même résultat. Je suis plus intéressé par la création dynamique HTML en ligne de la page Source.
Merci, Dima. Exactement ce que je cherchais. – Jed
De rien) –