Je suis en train d'écrire un contrôle Composite, qui contient un listview pour afficher une table d'éléments. Normalement, en utilisant un ListView dans Asp.NET, je définirais les templates dans le code-forward.Comment définir les modèles listview dans le code
<asp:ListView runat="server" ID="ArticleList">
<LayoutTemplate>
<div class="ContentContainer">
<div runat="server" id="itemPlaceholder" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div>
<div><%# Eval("Content") %></div>
</div>
</ItemTemplate>
</asp:ListView>
Je suppose que c'est quelque chose comme:
ListView view = new ListView();
view.LayoutTemplate = .....
view.ItemTemplate = .....
// when do I call these?
view.DataSource = myDataSource;
view.DataBind();
Mise à jour: J'ai créé 2 modèles en implémentant l'interface ITemplate:
private class LayoutTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
var outer = new HtmlGenericControl("div");
var inner = new HtmlGenericControl("div") { ID = "itemPlaceholder" };
table.Rows.Add(row);
container.Controls.Add(table);
}
}
private class ItemTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
var inner = new HtmlGenericControl("div");
container.Controls.Add(inner);
}
}
et je peux les ajouter à l'aide:
dataList.LayoutTemplate = new LayoutTemplate();
dataList.ItemTemplate = new ItemTemplate();
Mais alors je suis bloqué, puisque container.DataItem est nul.
Cela ressemble à cela. –
Il renvoie l'erreur 404. –