2015-02-09 47 views
0

我有以下对象:麻烦内转发结合分组列表的分组列表

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") %> 

我的事件查看器说

服务器标签没有很好地形成。

回答

0

尝试在服务器标签周围交换“”,而不是“”。

这样:

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

变为:

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