J'ai deux répéteurs imbriqués dans ma page * .aspx.Type anonyme pour répéteur imbriqué (ASP .NET)
<asp:Repeater runat="server" id="rptMain">
<ItemTemplate>
<h1><%#DataBinder.Eval(Container.DataItem, "Name")%></h1>
<asp:Repeater runat="server" DataSource='<%# getUser(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "FieldKey"))) %>'>
<HeaderTemplate><ol></HeaderTemplate>
<ItemTemplate>
<li class="<%#DataBinder.Eval(Container.DataItem, "CSSStyle")%>" id="li<%#DataBinder.Eval(Container.DataItem, "FieldKey")%>">
<%#DataBinder.Eval(Container.DataItem, "NameSubject")%>
</li>
</ItemTemplate>
<FooterTemplate></ol></FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
getUser est une méthode protégée. Il faut retourne la liste avec les propriétés suivantes:
- CssClass
- FIELDKEY
- NameSubject
Mais la propriété CssClass est définie dans le type anonyme.
protected List<????> getUser(int id)
{
DataClassesDataContext datacontext = new DataClassesDataContext();
var t1= from t in datacontext.GetAllCustomSubject(id).ToList()
select new { t.NameSubject, t.FieldKey, CSSStyle = t.IsDeleted ? "deleted hidden" : "real visible" };
return t;
}
Comment puis-je retourner une telle liste? Quel type de type de données puis-je utiliser au lieu de ???? ? En général, puis-je utiliser des répéteurs imbriqués avec des types anonymes?
Pourriez-vous le préciser? protected IEnumerable getUser Peut-être, je l'ai mal compris? –
@Amber: Juste 'IEnumerable', le type non générique dans' System.Collections'. –
Cela fonctionne. Je vous remercie. –