无法将内部转发器绑定到分组列表的分组列表

时间:2015-02-09 14:36:00

标签: c# list datasource repeater

我有以下对象:

var years = articles.GroupBy(a => a.Year).Select(yearGroup => new
{
    Year = yearGroup.Key,
    PerMonth = yearGroup.GroupBy(a => a.Month).Select(monthGroup => new
    {
        Month = monthGroup.Key,
        Articles = monthGroup.ToList()
    }).ToList()
}).ToList();

Repeater1.DataSource = years;
Repeater1.DataBind();

我试图将其显示如下:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <div class="yearGroup">
            <h1 class="yearHeading"><%# DataBinder.Eval(Container.DataItem, "Year") %></h1>
            <asp:Repeater ID="Repeater2" runat="server" DataSource='<%# DataBinder.Eval(Container.DataItem, "PerMonth")%>'>
                <ItemTemplate>
                    <div class="monthGroup">
                        <h3 class="monthHeading"><%# DataBinder.Eval(Container.DataItem, "Month") %></h3>
                        <asp:Repeater ID="Repeater3" runat="server" DataSource="<%# DataBinder.Eval(Container.DataItem, "Articles") %>">
                            <ItemTemplate>
                                <h1>Article title</h1>
                                <%--<div class="Article">
                                    <%# DataBinder.Eval(Container.DataItem, "Title") %>
                                </div>--%>
                            </ItemTemplate>
                        </asp:Repeater>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
        </div>
    </ItemTemplate>
</asp:Repeater>

一切正常,直到最后的中继器。当我删除Repeater3时,它可以正常工作,但当我输入最终的转发器时,我收到错误,由于某种原因它不喜欢

DataSource="<%# DataBinder.Eval(Container.DataItem, "Articles") %>

我的事件查看器说

  

服务器标签格式不正确。

1 个答案:

答案 0 :(得分:0)

尝试在服务器标签周围交换“”代替。

那样:

"<%# DataBinder.Eval(Container.DataItem, "Articles") %>"

变为:

'<%# DataBinder.Eval(Container.DataItem, "Articles") %>'