Programming ASP.NET, 3rd Edition by Jesse Liberty & Dan Hurwitz The unconfirmed error reports are from readers. They have not yet been approved or disproved by the author or editor and represent solely the opinion of the reader. Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem ?page-number?: reader question or request for clarification This page was updated March 28, 2008. UNCONFIRMED errors and comments from readers: There is a typo in section A.2. Debugging in Visual Studio (between figure A-7 and A-8). This tool is only available in debug mode (maybe that's the reason why few people know about it) and is accessible via *View*>Windows>Script Explorer. It should be: *Debug*>Windows>Script However, it is a very useful tip. I wasn't aware of this Script Explorer in VS2005 before I read this section. (85) Third paragraph (just after Example 3.3); returns an error. Validation (XHTML 1.0 Transitional): Element 'style' is missing required attribute 'type'. This line should probably look like: {92} Example 3-5 Controls in Default.aspx for ClientSideProcessing; I'm using the latest VS 2005 IDE and it doesn't have an onChange event for the asp:TextBox web control. However; it does contain an OnTextChanged event handler. Not sure what the event is called with the express ide but wanted to pass this alone.... {124} Table 4-7; CellPadding and CellSpacing have identical descriptions. Is this deliberate or accidental? {147} 1st paragraph - in C# code; I think I found a minor bug in BulletedListDemo code (p. 145). 'NotSet' doesn't appear to be a legal value for the BulletedListDisplayMode. However, it's a choice in the DisplayMode listbox. If 'NotSet' selected the following error occurs: Server Error in '/BulletedListDemo' Application. -------------------------------------------------------------------------------- Requested value 'NotSet' was not found. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Requested value 'NotSet' was not found. Source Error: Line 41: Line 42: case "lbDisplayMode": Line 43: BulletedListDisplayMode displayMode = Line 44: (BulletedListDisplayMode)Enum.Parse( Line 45: typeof(BulletedListDisplayMode), strValue); Source File: c:\WebSites\BulletedListDemo\Default.aspx.cs Line: 43 (167) C# code; The text of the pnlScroll panel overlays the dropdownlist and radiobutton list that control the panel when the scrollbar dropdown list is set to 'None' and the Wrop radiobuttonlist is set to 'True. This occurs is both IE and Firefox. {192} ASP.NET code at bottom of page; Wizard control is called "Wizard1" here but referred to as "wzzrdMorning" in rest of text and code for this demo. {235} 2nd paragraph; "A call is made to the lblSelectedUpdate method to clear the Label control containing the first selected date...." The above doesn't occur with the downloaded Calendar-MoreSelections code. The label doesn't get cleared. I had to add the following to the end of the lblSelectedUpdate() method to get it to work: if (Calendar1.SelectedDates.Count == 0) lblSelected.Text = ""; [255] First Paragraph; I believe that your explanation in this paragraph of how Cross-page posting and Response.Redirect is backward. Response.Redirect DOES post to the server and then the server redirects the user, via an HTTP redirect, to TargetPage.aspx within btnRedirect_Click. Cross-page posting, given your explanation, does not post to the server. Actually, saying that these buttons do not "post to the server" is a bad way of explaining what is going on. Response.Redirect posts to Default.aspx and Transfer posts to Default.aspx. Cross-page posts to TargetPage.aspx. They all all post back to the server. Transfer uses a "server-side transparent to the client redirect" and Response.Redirect uses an HTTP redirect seen by the client. {297} Last paragraph; Text in book: "Page-Level Tracing........but the SessionID remains constant." I'm following the examples in the book by creating new web sites in my local file system (as preferred by the book). My Session ID changes everytime the page is posted back to the server. Perhaps this wouldn't happen if IIS were serving the page. (335) 2nd paragraph, first line, last word; "made a new copy of the RequiredValidationSummary protect" I think the word protect should be project. {359} 1st paragraph; Text: "You will be asked to update your grid, which unfortunately will wipe out all your customization...." This didn't happen when I tried it. My customizations remained. {366} 2nd paragraph; Text: "....change from Edit and Delete to Save and Cancel." They change to Update and Cancel. {366} 366; The NULL data in the Region column caused an exception and wouldn't allow updating if Optimistic Concurrency was turned on. I'm not sure why this happened. {366} 1st paragraph; My version of the page wont save any updates as long as optimist concurrency is selected. When this is unselected as an option, the page works fine. {373} Last paragraph; Text: "The DataGrid allows you to...." I think you meant the "GridView". {381} 1st paragraph; Book Text: "(replace the control and the ID)" It doesn't seem necessary to replace the ID. The ID is already correct. {397} 2nd paragraph; Book Text: "

Form View Display

Should be "

Product View Display

" as this is how it appears in remaining examples. {423} Top; The DataRelations code example doesn't include the !IsPostBack check in the Page_Load method. {424} Middle of page; Book Text: "// and add the table mapping for bugs What is "bugs"? I believe this should be "Orders". {425} Middle of page; What is the reason for creating a third data adaptor that maps to the 'Products' table when this DataTable is never bound to a GridView? {455} Middle of page; Book Text: "// and add the table mapping for bugs" "bugs" should be "Shippers" {455} Bottom of page; Book Text: "// end createDataSet" "createDataSet" should be "PopulateGrid" [457] Bottom of page; 1) Page_Load event is blank in downloaded code sample of UpdatingDBDirectly. 2) Printed Page_Load event at bottom of page is incorrect (appears to be code from previous DataRelations example). Should be: protected void Page_Load(object sender, EventArgs e) { PopulateGrid(); } {468} Top; Book Text: "// connection string to connect to the Bugs database" Should be: "// connection string to connect to the Northwind database" {469} Top; Book Text: "// set up the command object to update the bug history" Should be deleted. {469} Bottom of page; Book Text: "// create a second command object for the bugs history table" Should be: " // declare the command object for the sql statements" {526} 2nd paragraph; Book Text: "Create two new .aspx pages, Welcome.aspx and PageTwo.aspx." Should be: "Create two new .aspx pages, Welcome.aspx and SecondPage.aspx." {527} 2nd paragraph; Book Text: "When you create SecondPage.aspx,...." Should be: "When you create PageTwo.aspx,....." {528} 2nd paragraph; Book Text: "..as shown in the highlighted lines of code in Example 12-2" Not enough lines have been highlighted in Example 12-2. {529} In Example 12-2 code; Book Text: CodeFile="ASP.NET.master.cs" I believe it should instead be: CodeFile="ASPNET.master.cs" {530} 1st paragraph; Book Text: "...(shown highlighted in Example 12-2)" {541} 1st paragraph; Book Text: "To begin with, you may click the Smart Tag....." I needed to move the TreeView control out of the table before it became visible in Design view. {545} Bottom of page; Programming.aspx in downloaded source files has AutoEventWireup="false" which doesn't allow the Page_Load to handle the event in Programming.asp.cs.