2015-02-09 54 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") %>'