Beginning ASP.NET 3.5: In C# and VBISBN: 978-0-470-18759-3
Paperback
768 pages
March 2008
This title is out-of-print and not currently available for purchase from this site.
|
Do you think you've discovered an error in this book? Please check the list of errata below to see if we've already addressed the error. If not, please submit the error via our Errata Form. We will attempt to verify your error; if you're right, we will post a correction below.
Chapter | Page | Details | Date | Print Run |
---|---|---|---|---|
XXVIII | Error in Text but look for a feature like User Folder Names should be: but look for a feature like Use Folder Names |
07/15/2008 | ||
16 | Error in Text first paragraph: reads: "At the top of the application, right below the Windows title bar..." Should be: "At the top of the application, right below the window's title bar..." |
2/25/11 | ||
24 | Error in Text Reads: Note that VWD automatically inserts the closing < h1 > for you. It should read: Note that VWD automatically inserts the closing < /h1 > for you. |
10/15/2010 | ||
2 | 33 | Error in Text Last list in the "...this chapter examines:", reads: "How to use the designer tools to created formatted web pages" should read: "How to use the designer tools to create formatted web pages" |
07/08/2008 | |
41 | Error in Table Last item in the table, last column: Contains design information for controls in your web site. Skins are discussed in the next chapter. Should be Contains design information for controls in your web site. Skins are discussed in Chapter 6. |
03/05.09 | ||
43 | Typo in Text The last sentence on the page (item 5): "... the CSS file will be added to you site." Should be "... the CSS file will be added to your site." |
1/29/09 | ||
2 | 57 | Error in Text and not the entire table with four rows Should be: and not the entire table with three rows |
07/15/2008 | |
88 | Error in Text ?blue? should be: ?green? |
07/15/2008 | ||
3 | 100 | Typo in Text "The heading must have a font size if 18 pixels" should read: "The heading must have a font size of 18 pixels" |
12/30/08 | |
4 | 120 | Error in Code interpretation step 6, 3rd shaded line the part that says: lstFavoriteLanguage Please note that the first character is a lower case L, not the number one. The code is correct as is with that character as a lower case L. |
04/03/08 | |
4 | 133 | Error in Text end of 2nd paragraph: "which controls attribute to? Should be: "which controls contribute to" |
09/22/08 | |
5 | 141 | Error in Code Gray box near the top of the page, final line: Dim i4 as Integer = CType(o2, Integer) 'Works, because 02 <i>looks</i> like an Integer should be: Dim i4 as Integer = CType(o2, Integer) 'Works, because o2 <i>looks</i> like an Integer |
12/16/08 | |
162 | Error in Text single sentence paragraph near the middle of the page: The C# example doesn't extract 1 from the Length, though. Should be: The C# example doesn't subtract 1 from the Length, though. |
09/07/08 | ||
5 | 165 | Typo in Text Below C# block: ...to what extend other web pages... Should be: ...to what extent other web pages... |
4/20/09 | |
5 | 173 | Error in Text Public Partial Class Demos_Calculator Should be Partial Public Class Demos_Calculator |
03/05/09 | |
5 | 173, 177 | Error in Code The Calculator type on the left side of the assignment operator on the top of page 173 is missing the namespace prefix. Change this: Calculator myCalculator = new Wrox.Samples.Calculator(); to this: Wrox.Samples.Calculator = new Wrox.Samples.Calculator() |
4/20/09 | |
5 | 177 | Error in Text First C# example shows a space between my and Calculator which shouldn't be there. To fix it, change: Calculator my Calculator = new Calculator(); to Calculator myCalculator = new Calculator(); |
11/20/09 | |
188 | Error in Text Top of the page: The default is Private which hides the class by default. should be: The default is internal (Friend in VB.NET) which makes the class visible to other classes in the same assembly (a.DLL) but hides it from code outside the assembly) |
06/12/2008 | ||
6 | 197 | Error in Code To match figure 6-2, the code for step 3, line 3: <div id="Header"><a class="HeaderLink" href="~/" runat="server"></a></div> should be: <div id="Header"><a class="HeaderLink" href="~/" runat="server">Header Goes Here</a></div> |
04/10/2008 | |
6 | 202 | Typo first paragraph under Nested Master Pages, last sentence says: for nested maser pages should be: for nested master pages |
09/23/08 | |
6 | 202 | Error in Text Last sentence of the second paragraph says that the content control will be empty, but that's not the case. Replace the text: This will add an empty <asp:Content> control to the page that you can fill with your own content. with the text: This will copy the default contents into a new |
5/27/09 | |
206, 207 | Error in Code Chapter 6: Page 206 / 207 Note The code on these pages checks the page's title for the text "Untitled Page" to make sure a page with this meaningless title never makes it to a production site. However, Service Pack 1 for Visual Web Developer 2008 (which was released after this book was published) has changed the default behavior. Pages now no longer have "Untitled Page" as their title, but an empty string instead. If you want the BasePage to check for empty strings as well, change the code on page 206 and 207 to this: 206 (VB) If Me.Title = "Untitled Page" Or String.IsNullOrEmpty(Me.Title) Then Throw New Exception("Page title cannot be ""Untitled Page"" or an empty string.") End If 207 (C#) if (this.Title == "Untitled Page" || string.IsNullOrEmpty(this.Title)) { throw new Exception("Page title cannot be \"Untitled Page\" or an empty string."); } Notice the extra check for the empty title using the IsNullOrEmpty method on the String class. |
2/6/09 | ||
6 | 212 | Error in Text Step 7 contains the text: "Type MyBasePage as the new page name." Instead of "new page name," this should have been "template name." |
9/14/09 | |
6 | 231 | Error in Text In the last paragraph "Default.aspx" Should be "SkinDemo.aspx" |
4/20/09 | |
7 | 239 | Error in Text 1st paragraph: "been modified to refer to an image in the same document as" should be "been modified to refer to an image in the same folder as" |
1/12/09 | |
241 | Error in Text third sentence from the end: "The Menu on the right displays Home only when the page first loads." (This implies that Home is only displayed when the page first loads, but not later.) should be: "When the page first loads, the Menu on the right only displays Home." |
06/13/2008 | ||
7 | 242 | Error in Code <siteMapNode url="~/ " title="Home" description="Go to the homepage" /> should be: <siteMapNode url="~/ " title="Home" description="Go to the homepage"> |
1/12/09 | |
7 | 244 | Error in Text Internet Explorer 8 and ASP.NET 3.5 don't play nice together when it comes to rendering the Menu control. When you view the menu in that browser, the sub menus are all blank and the menu text doesn't show up. The problem is caused by a change in the rendering engine of IE 8 to more strictly stick to the W3C web standards. You can fix the problem in two ways: 1. Add a high z-index to the .DynamicMenuStyle class (that you may need to add to your CSS file) first like this: .DynamicMenuStyle { z-index: 1000; } 2. Install a patch released by Microsoft. http://weblogs.asp.net/bleroy/archive/2009/03/23/asp-menu-fix-for-ie8-problem-available.aspx For more information, see these posts and articles: http://p2p.wrox.com/book-beginning-asp-net-3-5-c-vb-book-isbn-978-0-470-18759-3/73512-ie8-menu.html http://blogs.msdn.com/giorgio/archive/2009/02/01/asp-net-menu-and-ie8-rendering-white-issue.aspx |
7/10/09 | |
7 | 247 | Error in Text The first paragraph on the page talks about the <page> element in web.config, but this should be the <pages> element. |
9/14/09 | |
7 | 254 | Error in Text The line above Step #1 of Try It Out: ...write some code that either shows the Menu or the TreeView... To be grammatically correct, it should read: ...write some code that shows either the Menu or the TreeView... |
4/27/09 | |
258 | Typo Second to last sentence of the last paragraph: directly go the content should be: directly go to the content |
09/10/08 | ||
8 | 271 | Error in Step first line of step #10: ...Wrap the Image in a standard element and set its src attribute... should be: ...Wrap the Image in a standard element and set its href attribute... |
08/25/08 | |
8 | 275 | Error in Text Chapter 8, page 275, section "How It Works," second paragraph, first sentence, first clause: When you add the control registration to the master page Should be: When you add the control registration to the web.config file |
06/24/2008 | |
276 | Error in Code The code says to add code to the Page_Load event. However, that should be Page_Init to avoid problems in more advanced scenarios. So this code: VB.NET Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Me.ID = "Master" C# protected void Page_Load(object sender, EventArgs e) { this.ID = "Master"; should be: VB.NET Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Init Me.ID = "Master" C# protected void Page_Init(object sender, EventArgs e) { this.ID = "Master"; For more info, please the following Blog post on the author's web site: http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=469 |
09/11/08 | ||
299 | Error in Text Chapter 9, page 299, section "Extending the Contact Form," item #2, first sentence: Save button Should be: Send button |
06/26/2008 | ||
311 | Error in Text This allows you, for example, to create a MailAddress instance like this: should be: This allows you, for example, to create a MailMessage instance like this: |
06/12/2008 | ||
10 | 325 | Error in Text How It Works section, second paragraph. The sentence: The ScriptManager you placed in the master page.... Should read: The ScriptManager you placed in "UpdatePanel.aspx".... |
4/20/09 | |
357 | Error in Text You should use the App_Data folder only for data that is used at server should be You should use the App_Data folder only for data that is used at the server |
11/02/08 | ||
11 | 364 | Error in Text The second paragraph under the How It Works heading is referring to an incorrect step number. The text: The query shown in step 9 Should be The query shown in step 8 |
9/14/09 | |
372 | Error in Table Page 372, the table with data types contains a row for the varchar/nvarchar datatype. The Description column for that row should be changed from: ======================================= Used to store text with a variable length. The nchar stores the data in Unicode format, which allows you to store data for many foreign languages. ======================================= to ======================================= Used to store text with a variable length. The nvarchar stores the data in Unicode format, which allows you to store data for many foreign languages. ======================================= |
07/09/2008 | ||
12 | 400 | Error in Code Top of page, in the highlighted box that shows, "Your final code should look like this:", the second to last line in the box: ORDER BY [Name] should be ORDER BY [SortOrder] |
12/16/08 | |
12 | 410 | Error in Code Due to a change in Service Pack 1 of VWD (to support SQL Server 2008) some issues my arise in the Try It Out on page 410 (and other TIO's that use an SqlDataSource and a DateTime column). VWD incorrectly infers a Date data type instead of a DateTime. After step 6 on page 411 you may end up with the following code in the SqlDataSource: <asp:Parameter DbType="Date" Name="UpdateDateTime" /> However, the correct DbType should be a DateTime instead of a Date: <asp:Parameter DbType="DateTime" Name="UpdateDateTime" /> Without this change, you may receive the following error when you request the page: "The version of SQL Server in use does not support datatype 'date'" |
4/9/09 | |
420 | Error in Text In the How It works section: <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter a title." But that should be: <asp:RequiredFieldValidator ID="ReqVal2" runat="server" ErrorMessage="Please enter a title." |
11/6/09 | ||
12 | 423 | Error in Text Question 1 on page 423 asks you what control you should use to hook up the data control to the database. The explanation in Appendix A doesn't mention the SqlDataSource control that is needed (as you haven't seen LINQ at this stage) to hook up the control to the database. |
4/20/09 | |
430-remainder | Error in Code Error on 430 and through the remainder of the book: On non English versions of Visual Web Developer (VWD) or Visual Studio (VS) 2008 you may get unexpected results when working with the LINQ to SQL classes designer. The problem lies in the way the designer pluralizes tables names in the designer. For example, when you drag a table called Review on the designer, VWD / VS will automatically expose a Reviews property on the data context so you can access it like this: VB.NET Using myDataContext As New PlanetWroxDataContext() Dim allReviews = From review In myDataContext.Reviews _ Where review.Authorized = True _ Order By review.CreateDateTime Descending _ Select review End Using C# using (PlanetWroxDataContext myDataContext = new PlanetWroxDataContext()) { var allReviews = from review in myDataContext.Reviews where review.Authorized == true orderby review.CreateDateTime descending select review; } Notice how the myDataContext property has a Reviews collection (plural) even though the original table was called Review in singular form. This only works on English versions of VWD / VS. On other languages, the table won't be pluralized automatically. In that case, the PlanetWroxDataContext has a Review property. This means you'll need to adjust code examples as the one on page 430 to use the Review collection: VB.NET Using myDataContext As New PlanetWroxDataContext() Dim allReviews = From review In myDataContext.Review _ Where review.Authorized = True _ Order By review.CreateDateTime Descending _ Select review End Using C# using (PlanetWroxDataContext myDataContext = new PlanetWroxDataContext()) { var allReviews = from review in myDataContext.Review where review.Authorized == true orderby review.CreateDateTime descending select review; } The same problem may be present in other LINQ to SQL code examples in the book. Instead of adjusting the code, you could also rename the Review property in the code. You'll find the property in the PlanetWrox.designer.cs class: public System.Data.Linq.Table |
09/11/08 | ||
431 | Error in Text third paragraph, fourth line, fourth word: "off" should be: "of" |
06/27/2008 | ||
13 | 459 | Error in Code Code example at the top of the page: The definition for the Label button is followed by an empty element that shouldn't be there: <asp:Label ID="TooltipLabel" runat="server" Text='<%# Eval("Tooltip") %>' />< /> Should be: <asp:Label ID="TooltipLabel" runat="server" Text='<%# Eval ("Tooltip") %>' /> In addition, the definition for the Delete button has an extra double-quote. <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" " /> should be <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" /> |
9/14/09 | |
13 | 464 | Error in Text Second paragraph of the How it Works section, 5 lines up from the bottom of the paragraph, the word "false" should be "true." It says, "...you can set the Cancel property of the e argument that is passed to the event handler to False..." The "False" should be "True" because in the Try It Out section, the cancel property is set to "True." |
1/12/09 | |
14 | 489 | Error in Text First sentence of the last paragraph: and asks for that control for its data. should be: and asks that control for its data. |
9/14/09 | |
14 | 491 | Error in Text In step 3 you get an instruction to add an Imports statement to the Code Behind if you are using Visual Basic. Changes to the latest Service Pack for Visual Web Developer (which was released after this book was published) now require a "using" statement as well if you are using C#. Step 3 on page 491 should therefore read: 3. At the top of the Code Behind of the document add the following line of code: VB.NET Imports System.Data C# using System.Data; Adding "using System.Data;" brings this namespace in scope for the C# project as well so you get access to the DataRowView class. |
4/27/09 | |
14 | 493 | Error in Text On Top of Page: GridView1_RowRowDataBound should be: GridView1_RowDataBound |
09/29/08 | |
14 | 509 | Error in Code Top of page, within the VB code, the last line of the VB code that says "this.Title," should be "Me.Title." |
1/12/09 | |
15 | 528 | Error in Text last two sentences: "... then press Ctrl+V to paste your LoginView," should be: "... then press Ctrl+V to paste the Login control into your LoginView." |
06/26/2008 | |
529 | Error in Text section 5, second sentence: "The LoginView should be placed inside the AnonymousTemplate..." should be: "The Login control should be placed inside the AnonymousTemplate..." |
06/26/2008 | ||
550 | Error in Text second paragraph, second and third sentences: "The run time then found the allow element that grants access to the Managers role and immediately lets you in. The final rule that blocks access to all other users is never even checked anymore." should be: "The runtime then found the allow element that grants access to the Managers role and immediately let you in. The final rule that blocks access to all other users was not even checked." |
06/24/2008 | ||
15 | 552 | Error in Text In Service Pack 1 for Visual Web Developer (which was released after this book was published) the default templates for new Web Forms have changed and now contain fewer "using" statements for the C# web forms. This means you manually need to add some "using" statements to make some examples work. In order for the Roles class to be available in the C# example in step 5 on page 552, you need to add a "using" statement for the System.Web.Security namespace. To do this, add the following to the top of the Code Behind file, before the class definition: using System.Web.Security; VB.NET imports this namespace by default so you don't need to add it when you're using that language. |
7/10/09 | |
558 | Error in Text "run time" should be: "runtime" |
06/24/2008 | ||
16 | 559 | Error in Table The third row, second cell of the table refers to anonymousAuthentication which should be anonymousIdentification |
9/14/09 | |
561 | Error in Text "Chapter 5 discusses how to use generics to store role names using a generics list of strings." should be: "Chapter 5 discusses how to use generics to store role names using a generic list of strings." |
06/24/2008 | ||
17 | 604 | Error in Code step 9: The code reads: <h1>Un unknown error occurred</h1> But should read: <h1>An unknown error occurred</h1> |
4/7/11 | |
18 | 635, 636 | Error in Text In Service Pack 1 for Visual Web Developer (which was released after this book was published) the default templates for new Web Forms have changed and now contain fewer "using" statements for the C# web forms. This means you manually need to add some "using" statements to make some examples work. In order for the ConfigurationManager class to be available in the C# example on page 635 / 636, you need to add a "using" statement for the System.Configuration namespace. To do this, add the following to the top of the AppConfiguration.cs file, before the class definition: using System.Configuration; VB.NET imports this namespace by default so you don't need to add it when you're using that language. |
7/10/09 | |
App A | 674 | Error in Code There's no reason for </p> at the end of the User Control code. So this <uc1:ContactForm ID="ContactForm1" runat="server" PageDescription= "Contact Page" /></p> Should be: <uc1:ContactForm ID="ContactForm1" runat="server" PageDescription= "Contact Page" /> |
9/14/09 | |
678 | Error in Excercise 3 Solution Code Exercise 3 solution code is incorrect. <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "PictureDetails.aspx?Id=" + Eval("Id") %>'> Should be: <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "PictureDetails.aspx?Id=" + Eval("Id").ToString() %>'> |
09/08/08 |