嵌套转发器的匿名类型(ASP .NET)

时间:2010-08-12 12:26:17

标签: c# asp.net anonymous-types nested-repeater

我的* .aspx页面中有两个嵌套的转发器。

<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是受保护的方法。它必须返回具有以下属性的List:

  1. 的CssClass
  2. FieldKey
  3. NameSubject
  4. 但CSSClass属性被定义为匿名类型。

    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;
    }
    

    我该如何退回此类清单?我可以使用什么样的数据类型而不是???? ? 通常,我可以使用具有匿名类型的嵌套转发器吗?

1 个答案:

答案 0 :(得分:1)

好吧,转发器不关心,我怀疑 - 所以只是声明它返回IEnumerable