Je propose un contrôle de répéteur riche qui a besoin de certains contrôles (en particulier juste une liste non ordonnée) ajouté à l'exécution.
La solution que j'ai choisie est d'injecter le balisage nesseccary, onInit, dans les modèles d'en-tête, d'élément et de bas de page respectivement.
Je peux obtenir les modèles (en utilisant InstantiateIn) et ensuite ajouter le balisage au besoin, mais je ne sais pas comment ajouter le modèle au répéteur.Comment ajouter des contrôles à ItemTemplate (Répéteur) lors de l'exécution?
2
A
Répondre
4
Dans le passé, j'ai simplement géré le ItemDataBound Event
et modifié le RepeaterItem
actuel avec tout ce que je devais faire.
Exemple:
private void Repeater1_ItemDataBound(object Sender, RepeaterItemEventArgs e)
{
// Make sure you filter for the item you are after
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
PlaceHolder listLocation = (PlaceHolder)e.Item.FindControl("listPlaceHolder");
var subItems = ((MyClass)e.Item.DataItem).SubItems;
listLocation.Controls.Add(new LiteralControl("<ul>");
foreach(var item in subItems)
{
listLocation.Controls.Add(new LiteralControl("<li>" + item + "</li>"));
}
listLocation.Controls.Add(new LiteralControl("</ul>");
}
}
Serais-je en mesure de le faire à partir du contrôle composite? –
Je ne sais pas où est votre confusion ici Adam. Peut-être pouvez-vous éditer votre question et ajouter un peu de code ou une explication supplémentaire. –