I followed the Try-It-Out between pages 439-431.
But when I ran the code the titles were not displayed in my browser. (Ref Figure 13.5)
The bulleted lists appear with a blank line between the genres - but the genre titles are not displayed.
The code is below this text.
Anyone any idea where I have gone wrong?
Ken
AllByGenre.aspx
Code:
%@ Page Title="Reviews Grouped By Genre" Language="C#" MasterPageFile="~/MasterPages/MasterPage.master" AutoEventWireup="true" CodeFile="AllByGenre.aspx.cs" Inherits="Reviews_AllByGenre" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cpMainContent" Runat="Server">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<h3><asp.literal id="Literal1" runat="server" text='<%# Eval("Name")%>'></asp.literal></h3>
<asp:BulletedList ID="lstReviews" runat="server" DataSource='<%# Eval ("Reviews") %>' DataTextField="Title" DisplayMode="Text" />
</ItemTemplate>
</asp:Repeater>
</asp:Content>
AllByGenre.aspx.cs
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Reviews_AllByGenre : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
using (PlanetWroxDataContext myDataContext = new PlanetWroxDataContext())
{
var allGenres = from genre in myDataContext.Genres
orderby genre.Name
select new { genre.Name, genre.Reviews };
Repeater1.DataSource = allGenres;
Repeater1.DataBind();
}
}
}