This is working as intended. If you look at the page "ShowHeadlines.aspx", you'll see that it only includes controls for the 2 categories (look at the HTML version of this page). You can add another category here easily by copying the entry for books, and using the ID of the new category. For example:
<NewsManager:Headlines ID="DotNet" runat="server" CssClass="Book_News_General"
AlternatingItemStyle="Book_News_AlternatingItem" Width="500px" CategoryID="3" />
I am using the Books styles here because I don't want to create new styles right now. This shows the 3 categories when you view the news.
The following discussion assumes you are using C#, but this works the same in VB
You might have wondered why you can't see a list of categories straight from the DB? You have a stored proc "sp_News_GetCategories" that returns all the categories, and that is properly being called by the businesss object in file categories.cs, which is beging called by GetCategories() in category.cs.
So, with all that work to ensure that you can see a list of categories from the DB, why can't you? Because this function is only being called in one place, and that place is NOT an active part of the application! The file ShowCategories.aspx will show the categories straight from the DB. But this page is not on any of the other menus, so it is not being displayed.
Furthermore, if you have the C# version of the code, there's a bug in this page. It's easy to fix: the code (HTML view) needs a "form" tag just inside the body:
<form id="top" runat="server">
And you have to close this "form" tag at the end of the file:
And, if you may have tried viewing this page before making this correction, then the bad version is being cached and you can't see the correction until you clear the cache. This is a 2 step fix: 1) bring up IE, and empty it's cache, and 2) run "iisreset" from a command prompt.
During development you may want to comment out the OutputCache directive at the top of the page - this caching makes debugging difficult.