繁体   English   中英

嵌套中继器(ASP .NET)的匿名类型

[英]Anonymous type for nested repeater (ASP .NET)

我的* .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是一个受保护的方法。 它必须返回具有以下属性的列表:

  1. CSS类
  2. FieldKey
  3. 名字主题

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

我如何退回该清单? 我可以使用哪种数据类型代替? 通常,我可以将嵌套中继器与匿名类型一起使用吗?

好吧,我怀疑中继器不会在乎-所以只需声明它返回IEnumerable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM