转发器绑定分层匿名类型

时间:2011-06-04 22:51:26

标签: c# asp.net linq data-binding repeater

喜 DataBinding有一些问题 我想创建一个带有转发器控件的嵌套菜单

代码

var menu = from xx in DB.DataSet
               group xx by xx.dataEmisji.Value.Year into years
               select new
               {
                   lata = years.Key,
                   nominaly = (from zz in DB.DataSet
                               where zz.dataEmisji.Value.Year == years.Key
                               select zz.nominal).Distinct() // IEnumerable<int>
               };
    Repeater1.DataSource = menu;
    Repeater1.DataBind();

asp.net

<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate><ul></HeaderTemplate>
<ItemTemplate >
     <li>
         <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("lata") %>'></asp:HyperLink>
            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%# Eval("nominaly") %>'>
                <HeaderTemplate><ul></HeaderTemplate>
                    <ItemTemplate>
                        <li><asp:HyperLink ID="HyperLink2" runat="server" Text='<%# Eval("Value") %>'>HyperLink</asp:HyperLink></li>
                    </ItemTemplate>
                <FooterTemplate></ul></FooterTemplate>
            </asp:Repeater>
     </li>
</ItemTemplate>
<FooterTemplate></ul></FooterTemplate>
</asp:Repeater>

正如预期的那样我有DataBinding:'System.Int32'不包含名为'Value'的属性。

我的问题是,如何在repeater2中访问'nominaly'的值?所以我可以用它

我想要的是:

year1
--1
--2
--3
year2
--1
--2
--3

1 个答案:

答案 0 :(得分:0)

而不是Eval("Value")使用Container.DataItem