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

发布于 2024-09-14 09:11:12 字数 1446 浏览 0 评论 0原文

我的 *.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. CSSClass
  2. FieldKey
  3. NameSubject

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

我怎样才能返回这样的列表?我可以使用什么类型的数据类型来代替??? ? 一般来说,我可以使用匿名类型的嵌套转发器吗?

I have two nested repeaters in my *.aspx page.

<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 is a protected method. It must returns the List with the following properties:

  1. CSSClass
  2. FieldKey
  3. NameSubject

But CSSClass property is defined into the anonymous type.

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

How can I return such List? What kind of datatype can I Use instead of ???? ?
In general, can I use nested repeaters with anonymous types?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情独悲 2024-09-21 09:11:12

好吧,我怀疑中继器不会关心 - 所以只需声明它返回 IEnumerable 即可。

Well, the repeater won't care, I suspect - so just declare it to return IEnumerable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文