From a0c74a2976a609867a8b0b51c029e5eeb36bba78 Mon Sep 17 00:00:00 2001 From: Apress Date: Tue, 11 Oct 2016 03:11:50 +0100 Subject: [PATCH] First commit --- 9781590598917.jpg | Bin 0 -> 12276 bytes .../Chapter03/App_Code/Product.cs | 62 + Beginning ASP.NET 3.5/Chapter03/Default.aspx | 19 + Beginning ASP.NET 3.5/Chapter03/Garbage.jpg | Bin 0 -> 15884 bytes Beginning ASP.NET 3.5/Chapter03/Web.config | 113 + .../Chapter05/CurrencyConverter.aspx | 30 + .../Chapter05/CurrencyConverter.aspx.cs | 45 + .../Chapter05/CurrencyConverter.html | 22 + Beginning ASP.NET 3.5/Chapter05/Global.asax | 12 + .../Chapter05/HtmlEncodeTest.aspx | 21 + .../Chapter05/HtmlEncodeTest.aspx.cs | 19 + .../Chapter05/ImageTest.aspx | 28 + .../Chapter05/ImageTest.aspx.cs | 35 + .../Chapter05/ShowSettings.aspx | 17 + .../Chapter05/ShowSettings.aspx.cs | 21 + Beginning ASP.NET 3.5/Chapter05/Web.config | 117 + Beginning ASP.NET 3.5/Chapter05/button.png | Bin 0 -> 71023 bytes Beginning ASP.NET 3.5/Chapter05/pic0.png | Bin 0 -> 2891 bytes Beginning ASP.NET 3.5/Chapter05/pic1.png | Bin 0 -> 2952 bytes Beginning ASP.NET 3.5/Chapter05/pic2.png | Bin 0 -> 2525 bytes .../Chapter06/GreetingCardMaker.sln | 35 + .../Chapter06/GreetingCardMaker.suo | Bin 0 -> 11776 bytes .../GreetingCardMaker/GreetingCardMaker.aspx | 41 + .../GreetingCardMaker.aspx.cs | 108 + .../GreetingCardMaker/GreetingCardMaker.suo | Bin 0 -> 7168 bytes .../GreetingCardMaker/GreetingCardMaker2.aspx | 43 + .../GreetingCardMaker2.aspx.cs | 119 + .../Chapter06/GreetingCardMaker/Web.config | 113 + .../GreetingCardMaker/defaultpic.png | Bin 0 -> 7050 bytes .../Chapter06/WebControls.sln | 35 + .../Chapter06/WebControls.suo | Bin 0 -> 11264 bytes .../Chapter06/WebControls/BulletedList.aspx | 21 + .../WebControls/BulletedList.aspx.cs | 32 + .../Chapter06/WebControls/CheckListTest.aspx | 21 + .../WebControls/CheckListTest.aspx.cs | 48 + .../Chapter06/WebControls/EventTracker.aspx | 31 + .../WebControls/EventTracker.aspx.cs | 47 + .../Chapter06/WebControls/TablePictures.aspx | 29 + .../WebControls/TablePictures.aspx.cs | 72 + .../Chapter06/WebControls/Web.config | 113 + .../Chapter06/WebControls/cellpic.PNG | Bin 0 -> 271 bytes .../Chapter07/CookielessSessions.sln | 35 + .../Chapter07/CookielessSessions.suo | Bin 0 -> 10240 bytes .../CookielessSessions/Cookieless1.aspx | 36 + .../CookielessSessions/Cookieless1.aspx.cs | 32 + .../CookielessSessions/Cookieless2.aspx | 18 + .../CookielessSessions/Cookieless2.aspx.cs | 25 + .../Chapter07/CookielessSessions/Web.config | 114 + .../Chapter07/StateManagement.sln | 35 + .../Chapter07/StateManagement.suo | Bin 0 -> 12288 bytes .../StateManagement/CookieExample.aspx | 22 + .../StateManagement/CookieExample.aspx.cs | 46 + .../Chapter07/StateManagement/CrossPage1.aspx | 26 + .../StateManagement/CrossPage1.aspx.cs | 31 + .../Chapter07/StateManagement/CrossPage2.aspx | 16 + .../StateManagement/CrossPage2.aspx.cs | 30 + .../StateManagement/PreserveMembers.aspx | 18 + .../StateManagement/PreserveMembers.aspx.cs | 41 + .../StateManagement/QueryStringRecipient.aspx | 16 + .../QueryStringRecipient.aspx.cs | 20 + .../StateManagement/QueryStringSender.aspx | 24 + .../StateManagement/QueryStringSender.aspx.cs | 43 + .../StateManagement/SessionStateExample.aspx | 35 + .../SessionStateExample.aspx.cs | 105 + .../StateManagement/SimpleCounter.aspx | 17 + .../StateManagement/SimpleCounter.aspx.cs | 33 + .../Chapter07/StateManagement/StyleSheet.css | 12 + .../Chapter07/StateManagement/Web.config | 113 + .../Chapter08/ErrorHandling.sln | 35 + .../Chapter08/ErrorHandling.suo | Bin 0 -> 11264 bytes .../ErrorHandling/ErrorHandlingTest.aspx | 24 + .../ErrorHandling/ErrorHandlingTest.aspx.cs | 38 + .../ErrorHandling/ErrorTestCustomLog.aspx | 24 + .../ErrorHandling/ErrorTestCustomLog.aspx.cs | 55 + .../Chapter08/ErrorHandling/ErrorTestLog.aspx | 24 + .../ErrorHandling/ErrorTestLog.aspx.cs | 46 + .../ErrorHandling/EventReviewPage.aspx | 31 + .../ErrorHandling/EventReviewPage.aspx.cs | 67 + .../Chapter08/ErrorHandling/SimpleTrace.aspx | 17 + .../ErrorHandling/SimpleTrace.aspx.cs | 22 + .../Chapter08/ErrorHandling/StyleSheet.css | 12 + .../Chapter08/ErrorHandling/TraceExample.aspx | 20 + .../ErrorHandling/TraceExample.aspx.cs | 46 + .../Chapter08/ErrorHandling/Web.config | 113 + .../Chapter10/Validation.sln | 35 + .../Chapter10/Validation.suo | Bin 0 -> 8704 bytes .../Chapter10/Validation/CustomerForm.aspx | 134 + .../Chapter10/Validation/CustomerForm.aspx.cs | 47 + .../Chapter10/Validation/ErrorIcon.jpg | Bin 0 -> 605 bytes .../Validation/ManualValidation.aspx | 26 + .../Validation/ManualValidation.aspx.cs | 39 + .../Validation/RegularExpressionTest.aspx | 28 + .../Validation/RegularExpressionTest.aspx.cs | 22 + .../Chapter10/Validation/StyleSheet.css | 12 + .../Validation/ValidationGroups.aspx | 40 + .../Validation/ValidationGroups.aspx.cs | 27 + .../Validation/ValidationSummary.aspx | 32 + .../Validation/ValidationSummary.aspx.cs | 24 + .../Chapter10/Validation/ValidationTest.aspx | 33 + .../Validation/ValidationTest.aspx.cs | 25 + .../Chapter10/Validation/Web.config | 113 + .../Chapter11/RichControls.sln | 35 + .../Chapter11/RichControls.suo | Bin 0 -> 12288 bytes .../Chapter11/RichControls/AdRotatorTest.aspx | 20 + .../RichControls/AdRotatorTest.aspx.cs | 28 + .../Chapter11/RichControls/Appointment.aspx | 28 + .../RichControls/Appointment.aspx.cs | 57 + .../Chapter11/RichControls/CalendarTest.aspx | 26 + .../RichControls/CalendarTest.aspx.cs | 39 + .../Chapter11/RichControls/MainAds.xml | 12 + .../MultiViewGreetingCardMaker.aspx | 83 + .../MultiViewGreetingCardMaker.aspx.cs | 111 + .../Chapter11/RichControls/StyleSheet.css | 12 + .../Chapter11/RichControls/Web.config | 113 + .../RichControls/WizardGreetingCardMaker.aspx | 66 + .../WizardGreetingCardMaker.aspx.cs | 109 + .../Chapter11/RichControls/defaultpic.png | Bin 0 -> 7050 bytes .../Chapter11/RichControls/msasp.gif | Bin 0 -> 22783 bytes .../Chapter12/CustomDrawing.sln | 35 + .../Chapter12/CustomDrawing.suo | Bin 0 -> 11776 bytes .../CustomDrawing/ContentAndGraphics.aspx | 20 + .../CustomDrawing/ContentAndGraphics.aspx.cs | 18 + .../CustomDrawing/GraphicalText.aspx | 16 + .../CustomDrawing/GraphicalText.aspx.cs | 45 + .../CustomDrawing/GraphicalText2.aspx | 16 + .../CustomDrawing/GraphicalText2.aspx.cs | 49 + .../Chapter12/CustomDrawing/Web.config | 113 + .../Chapter12/CustomDrawing/smiley.gif | Bin 0 -> 1053 bytes .../Chapter12/UserControls.sln | 35 + .../Chapter12/UserControls.suo | Bin 0 -> 10240 bytes .../App_Code/LinkClickedEventArgs.cs | 34 + .../UserControls/App_Code/NameTextBox.cs | 53 + .../Chapter12/UserControls/Footer.ascx | 2 + .../Chapter12/UserControls/Footer.ascx.cs | 37 + .../Chapter12/UserControls/FooterHost.aspx | 30 + .../Chapter12/UserControls/FooterHost.aspx.cs | 30 + .../Chapter12/UserControls/LinkMenu.ascx | 16 + .../Chapter12/UserControls/LinkMenu.ascx.cs | 18 + .../Chapter12/UserControls/LinkMenu2.ascx | 15 + .../Chapter12/UserControls/LinkMenu2.ascx.cs | 37 + .../Chapter12/UserControls/Menu2Host.aspx | 31 + .../Chapter12/UserControls/Menu2Host.aspx.cs | 40 + .../Chapter12/UserControls/MenuHost.aspx | 28 + .../Chapter12/UserControls/MenuHost.aspx.cs | 23 + .../Chapter12/UserControls/StyleSheet.css | 11 + .../Chapter12/UserControls/Web.config | 113 + .../Chapter13/MasterPages.sln | 35 + .../Chapter13/MasterPages.suo | Bin 0 -> 9728 bytes .../MasterPages/DefaultContent.master | 20 + .../MasterPages/DefaultContent.master.cs | 16 + .../MasterPages/DefaultContentPage.aspx | 3 + .../MasterPages/DefaultContentPage.aspx.cs | 19 + .../MasterPages/DynamicContentPage.aspx | 3 + .../MasterPages/DynamicContentPage.aspx.cs | 23 + .../MasterPages/MultipleContent.master | 31 + .../MasterPages/MultipleContent.master.cs | 19 + .../MasterPages/MultipleContentPage.aspx | 19 + .../MasterPages/MultipleContentPage.aspx.cs | 19 + .../MasterPages/SimpleContentPage.aspx | 6 + .../MasterPages/SimpleContentPage.aspx.cs | 19 + .../Chapter13/MasterPages/SiteTemplate.master | 18 + .../MasterPages/SiteTemplate.master.cs | 19 + .../MasterPages/TableContentPage.aspx | 8 + .../MasterPages/TableContentPage.aspx.cs | 27 + .../Chapter13/MasterPages/TableMaster.master | 41 + .../MasterPages/TableMaster.master.cs | 25 + .../Chapter13/MasterPages/Web.config | 113 + .../Chapter13/MasterPages/apress.JPG | Bin 0 -> 9788 bytes Beginning ASP.NET 3.5/Chapter13/Themes.sln | 35 + Beginning ASP.NET 3.5/Chapter13/Themes.suo | Bin 0 -> 9728 bytes .../FunkyTheme/ButtonImages/buttonCancel.jpg | Bin 0 -> 4670 bytes .../FunkyTheme/ButtonImages/buttonOK.jpg | Bin 0 -> 3878 bytes .../Themes/App_Themes/FunkyTheme/Buttons.skin | 8 + .../App_Themes/FunkyTheme/Calendar.skin | 9 + .../App_Themes/FunkyTheme/FunkyTheme.skin | 8 + .../App_Themes/FunkyTheme/StyleSheet.css | 12 + .../Themes/App_Themes/ProTheme/ProTheme.skin | 8 + .../Chapter13/Themes/CSSStyles.aspx | 28 + .../Chapter13/Themes/CSSStyles.aspx.cs | 18 + .../Chapter13/Themes/Calendar.aspx | 16 + .../Chapter13/Themes/Calendar.aspx.cs | 18 + .../Chapter13/Themes/DynamicThemes.aspx | 19 + .../Chapter13/Themes/DynamicThemes.aspx.cs | 61 + .../Chapter13/Themes/ImageInTheme.aspx | 17 + .../Chapter13/Themes/ImageInTheme.aspx.cs | 19 + .../Chapter13/Themes/StyleSheet.css | 26 + .../Chapter13/Themes/Themes.aspx | 27 + .../Chapter13/Themes/Themes.aspx.cs | 18 + .../Chapter13/Themes/ThemesWithCSS.aspx | 25 + .../Chapter13/Themes/ThemesWithCSS.aspx.cs | 18 + .../Chapter13/Themes/Web.config | 113 + .../Chapter14/MenuSiteMap.sln | 35 + .../Chapter14/MenuSiteMap.suo | Bin 0 -> 11264 bytes .../Chapter14/MenuSiteMap/MasterPage.master | 48 + .../MenuSiteMap/MasterPage.master.cs | 55 + .../Chapter14/MenuSiteMap/StyleSheet.css | 12 + .../Chapter14/MenuSiteMap/Web.config | 113 + .../Chapter14/MenuSiteMap/Web.sitemap | 24 + .../Chapter14/MenuSiteMap/aboutus.aspx | 5 + .../Chapter14/MenuSiteMap/aboutus.aspx.cs | 18 + .../Chapter14/MenuSiteMap/arrowright.gif | Bin 0 -> 64 bytes .../Chapter14/MenuSiteMap/default.aspx | 11 + .../Chapter14/MenuSiteMap/default.aspx.cs | 18 + .../Chapter14/MenuSiteMap/financial.aspx | 5 + .../Chapter14/MenuSiteMap/financial.aspx.cs | 18 + .../Chapter14/MenuSiteMap/product1.aspx | 11 + .../Chapter14/MenuSiteMap/product1.aspx.cs | 26 + .../Chapter14/MenuSiteMap/product2.aspx | 6 + .../Chapter14/MenuSiteMap/product2.aspx.cs | 18 + .../Chapter14/MenuSiteMap/products.aspx | 8 + .../Chapter14/MenuSiteMap/products.aspx.cs | 18 + .../Chapter14/PartialSiteMaps.sln | 35 + .../Chapter14/PartialSiteMaps.suo | Bin 0 -> 10752 bytes .../PartialSiteMaps/MasterPage.master | 36 + .../PartialSiteMaps/MasterPage.master.cs | 18 + .../Chapter14/PartialSiteMaps/StyleSheet.css | 11 + .../Chapter14/PartialSiteMaps/Web.Config | 86 + .../Chapter14/PartialSiteMaps/Web.sitemap | 25 + .../Chapter14/PartialSiteMaps/aboutus.aspx | 5 + .../Chapter14/PartialSiteMaps/aboutus.aspx.cs | 18 + .../Chapter14/PartialSiteMaps/arrowright.gif | Bin 0 -> 64 bytes .../Chapter14/PartialSiteMaps/default.aspx | 9 + .../Chapter14/PartialSiteMaps/default.aspx.cs | 18 + .../Chapter14/PartialSiteMaps/financial.aspx | 5 + .../PartialSiteMaps/financial.aspx.cs | 18 + .../PartialSiteMaps/information.aspx | 8 + .../PartialSiteMaps/information.aspx.cs | 18 + .../Chapter14/PartialSiteMaps/product1.aspx | 9 + .../PartialSiteMaps/product1.aspx.cs | 18 + .../Chapter14/PartialSiteMaps/product2.aspx | 4 + .../PartialSiteMaps/product2.aspx.cs | 18 + .../Chapter14/PartialSiteMaps/products.aspx | 8 + .../PartialSiteMaps/products.aspx.cs | 18 + .../Chapter14/SimpleSiteMap.sln | 35 + .../Chapter14/SimpleSiteMap.suo | Bin 0 -> 11264 bytes .../Chapter14/SimpleSiteMap/MasterPage.master | 46 + .../SimpleSiteMap/MasterPage.master.cs | 18 + .../Chapter14/SimpleSiteMap/StyleSheet.css | 12 + .../Chapter14/SimpleSiteMap/Web.config | 113 + .../Chapter14/SimpleSiteMap/Web.sitemap | 24 + .../Chapter14/SimpleSiteMap/aboutus.aspx | 5 + .../Chapter14/SimpleSiteMap/aboutus.aspx.cs | 18 + .../Chapter14/SimpleSiteMap/arrowright.gif | Bin 0 -> 64 bytes .../Chapter14/SimpleSiteMap/default.aspx | 9 + .../Chapter14/SimpleSiteMap/default.aspx.cs | 18 + .../Chapter14/SimpleSiteMap/financial.aspx | 5 + .../Chapter14/SimpleSiteMap/financial.aspx.cs | 18 + .../Chapter14/SimpleSiteMap/product1.aspx | 11 + .../Chapter14/SimpleSiteMap/product1.aspx.cs | 26 + .../Chapter14/SimpleSiteMap/product2.aspx | 6 + .../Chapter14/SimpleSiteMap/product2.aspx.cs | 18 + .../Chapter14/SimpleSiteMap/products.aspx | 8 + .../Chapter14/SimpleSiteMap/products.aspx.cs | 18 + Beginning ASP.NET 3.5/Chapter15/ADO.NET.sln | 35 + Beginning ASP.NET 3.5/Chapter15/ADO.NET.suo | Bin 0 -> 13312 bytes .../Chapter15/ADO.NET/AuthorBrowser.aspx | 25 + .../Chapter15/ADO.NET/AuthorBrowser.aspx.cs | 124 + .../Chapter15/ADO.NET/AuthorManager.aspx | 63 + .../Chapter15/ADO.NET/AuthorManager.aspx.cs | 269 ++ .../Chapter15/ADO.NET/ConnectionTester.aspx | 24 + .../ADO.NET/ConnectionTester.aspx.cs | 59 + .../Chapter15/ADO.NET/StyleSheet.css | 12 + .../Chapter15/ADO.NET/TableRelationships.aspx | 17 + .../ADO.NET/TableRelationships.aspx.cs | 86 + .../Chapter15/ADO.NET/Web.config | 115 + .../Chapter16/DataBinding.sln | 35 + .../Chapter16/DataBinding.suo | Bin 0 -> 10240 bytes .../DataBinding/CustomParameters.aspx | 49 + .../DataBinding/CustomParameters.aspx.cs | 26 + .../Chapter16/DataBinding/DataBindingUrl.aspx | 25 + .../DataBinding/DataBindingUrl.aspx.cs | 22 + .../Chapter16/DataBinding/DataSetBinding.aspx | 16 + .../DataBinding/DataSetBinding.aspx.cs | 52 + .../DataBinding/DictionaryCollection.aspx | 20 + .../DataBinding/DictionaryCollection.aspx.cs | 44 + .../Chapter16/DataBinding/Images/picture.jpg | Bin 0 -> 2124 bytes .../DataBinding/ListDataBinding.aspx | 26 + .../DataBinding/ListDataBinding.aspx.cs | 38 + .../Chapter16/DataBinding/RecordEditor.aspx | 36 + .../DataBinding/RecordEditor.aspx.cs | 113 + .../DataBinding/RecordEditorDataSource.aspx | 59 + .../RecordEditorDataSource.aspx.cs | 14 + ...RecordEditorDataSource_MatchAllValues.aspx | 65 + ...ordEditorDataSource_MatchAllValues.aspx.cs | 25 + .../DataBinding/SimpleDataBinding.aspx | 21 + .../DataBinding/SimpleDataBinding.aspx.cs | 26 + .../Chapter16/DataBinding/StyleSheet.css | 11 + .../DataBinding/UpdateDeleteInsert.aspx | 38 + .../DataBinding/UpdateDeleteInsert.aspx.cs | 20 + .../Chapter16/DataBinding/Web.config | 115 + .../Chapter17/DataControls.sln | 35 + .../Chapter17/DataControls.suo | Bin 0 -> 10240 bytes .../Chapter17/DataControls/BasicGridView.aspx | 19 + .../DataControls/BasicGridView.aspx.cs | 34 + .../BasicGridView_SqlDataSource.aspx | 23 + .../BasicGridView_SqlDataSource.aspx.cs | 18 + .../DataControls/DetailsViewTest.aspx | 40 + .../DataControls/DetailsViewTest.aspx.cs | 33 + .../Chapter17/DataControls/FormViewTest.aspx | 49 + .../DataControls/FormViewTest.aspx.cs | 18 + .../DataControls/FormatHighPrices.aspx | 27 + .../DataControls/FormatHighPrices.aspx.cs | 34 + .../Chapter17/DataControls/GridViewEdit.aspx | 29 + .../DataControls/GridViewEdit.aspx.cs | 18 + .../DataControls/GridViewSelect.aspx | 43 + .../DataControls/GridViewSelect.aspx.cs | 18 + .../DataControls/GridViewSortPage.aspx | 27 + .../DataControls/GridViewSortPage.aspx.cs | 18 + .../DataControls/GridViewStyles.aspx | 55 + .../DataControls/GridViewStyles.aspx.cs | 18 + .../DataControls/GridViewTemplates.aspx | 65 + .../DataControls/GridViewTemplates.aspx.cs | 15 + .../Chapter17/DataControls/StyleSheet.css | 11 + .../Chapter17/DataControls/Web.config | 116 + .../Chapter18/FileSystem.sln | 35 + .../Chapter18/FileSystem.suo | Bin 0 -> 11264 bytes .../FileSystem/FTP/Sample File 1.txt | 1 + .../FileSystem/FTP/Sample File 2.txt | 1 + .../FileSystem/FTP/Sample File 3.txt | 1 + .../Chapter18/FileSystem/FileBrowser.aspx | 44 + .../Chapter18/FileSystem/FileBrowser.aspx.cs | 124 + .../Chapter18/FileSystem/StyleSheet.css | 11 + .../Chapter18/FileSystem/ViewFiles.aspx | 36 + .../Chapter18/FileSystem/ViewFiles.aspx.cs | 112 + .../Chapter18/FileSystem/Web.config | 113 + .../Chapter18/FileUploading.sln | 35 + .../Chapter18/FileUploading.suo | Bin 0 -> 11264 bytes .../Chapter18/FileUploading/GuestBook.suo | Bin 0 -> 8704 bytes .../Chapter18/FileUploading/StyleSheet.css | 11 + .../Chapter18/FileUploading/UploadFile.aspx | 20 + .../FileUploading/UploadFile.aspx.cs | 68 + .../Chapter18/FileUploading/Web.config | 113 + Beginning ASP.NET 3.5/Chapter18/GuestBook.sln | 35 + Beginning ASP.NET 3.5/Chapter18/GuestBook.suo | Bin 0 -> 10752 bytes .../Chapter18/GuestBook/App_Code/BookEntry.cs | 41 + .../Chapter18/GuestBook/GuestBook.aspx | 55 + .../Chapter18/GuestBook/GuestBook.aspx.cs | 121 + .../GuestBook/GuestBook/63266521720234375055 | 3 + .../GuestBook/GuestBook/63266521737765625019 | 3 + .../GuestBook/GuestBook/63266521747843750020 | 3 + .../Chapter18/GuestBook/StyleSheet.css | 11 + .../Chapter18/GuestBook/Web.config | 113 + Beginning ASP.NET 3.5/Chapter19/Xml.sln | 35 + Beginning ASP.NET 3.5/Chapter19/Xml.suo | Bin 0 -> 15872 bytes .../Chapter19/Xml/App_Code/Product.cs | 37 + .../Xml/App_Data/AppSuperProProductList.xml | 1 + .../Chapter19/Xml/App_Data/InvalidData.xml | 13 + .../Chapter19/Xml/App_Data/InvalidTag.xml | 13 + .../Xml/App_Data/SuperProProductList.xml | 13 + .../Xml/App_Data/SuperProProductList.xsd | 21 + .../Xml/App_Data/SuperProProductList.xsl | 21 + .../App_Data/SuperProProductListNested.xml | 17 + .../Xml/App_Data/SuperProTransform.xml | 13 + .../Chapter19/Xml/App_Data/authors.xsl | 23 + .../Chapter19/Xml/StyleSheet.css | 11 + .../Chapter19/Xml/Web.config | 115 + .../Chapter19/Xml/XmlDataBinding.aspx | 30 + .../Chapter19/Xml/XmlDataBinding.aspx.cs | 18 + .../Chapter19/Xml/XmlDataSet.aspx | 25 + .../Chapter19/Xml/XmlDataSet.aspx.cs | 62 + .../Chapter19/Xml/XmlDocumentTest.aspx | 27 + .../Chapter19/Xml/XmlDocumentTest.aspx.cs | 151 ++ .../Chapter19/Xml/XmlTransform.aspx | 21 + .../Chapter19/Xml/XmlTransform.aspx.cs | 18 + .../Chapter19/Xml/XmlValidation.aspx | 24 + .../Chapter19/Xml/XmlValidation.aspx.cs | 67 + .../Chapter19/Xml/XmlWriterTest.aspx | 27 + .../Chapter19/Xml/XmlWriterTest.aspx.cs | 173 ++ .../Chapter20/FormsSecurity.sln | 35 + .../Chapter20/FormsSecurity.suo | Bin 0 -> 10240 bytes .../Chapter20/FormsSecurity/Default.aspx | 17 + .../Chapter20/FormsSecurity/Default.aspx.cs | 20 + .../Chapter20/FormsSecurity/Login.aspx | 35 + .../Chapter20/FormsSecurity/Login.aspx.cs | 31 + .../SecuredPages/SecuredPage.aspx | 20 + .../SecuredPages/SecuredPage.aspx.cs | 25 + .../FormsSecurity/SecuredPages/Web.config | 12 + .../Chapter20/FormsSecurity/StyleSheet.css | 11 + .../FormsSecurity/UnSecuredPage.aspx | 21 + .../FormsSecurity/UnSecuredPage.aspx.cs | 23 + .../Chapter20/FormsSecurity/Web.config | 110 + .../Chapter20/WindowsSecurity.sln | 35 + .../Chapter20/WindowsSecurity.suo | Bin 0 -> 7680 bytes .../SecuredPages/SecuredPage.aspx | 17 + .../SecuredPages/SecuredPage.aspx.cs | 39 + .../WindowsSecurity/SecuredPages/Web.config | 12 + .../Chapter20/WindowsSecurity/StyleSheet.css | 11 + .../WindowsSecurity/UnSecuredPage.aspx | 21 + .../WindowsSecurity/UnSecuredPage.aspx.cs | 23 + .../Chapter20/WindowsSecurity/Web.config | 113 + .../Chapter21/Membership.sln | 35 + .../Chapter21/Membership.suo | Bin 0 -> 10240 bytes .../Chapter21/Membership/Default.aspx | 26 + .../Chapter21/Membership/Default.aspx.cs | 18 + .../Chapter21/Membership/Login.aspx | 26 + .../Chapter21/Membership/Login.aspx.cs | 19 + .../Chapter21/Membership/ManageUsers.aspx | 47 + .../Chapter21/Membership/ManageUsers.aspx.cs | 41 + .../Membership/PasswordRecovery.aspx | 26 + .../Membership/PasswordRecovery.aspx.cs | 23 + .../Chapter21/Membership/Register.aspx | 80 + .../Chapter21/Membership/Register.aspx.cs | 39 + .../Chapter21/Membership/StyleSheet.css | 11 + .../Chapter21/Membership/Web.config | 123 + Beginning ASP.NET 3.5/Chapter22/Profiles.sln | 35 + Beginning ASP.NET 3.5/Chapter22/Profiles.suo | Bin 0 -> 12288 bytes .../Chapter22/Profiles/App_Code/Address.cs | 68 + .../Chapter22/Profiles/ComplexTypes.aspx | 58 + .../Chapter22/Profiles/ComplexTypes.aspx.cs | 38 + .../Chapter22/Profiles/GetAllProfiles.aspx | 18 + .../Chapter22/Profiles/GetAllProfiles.aspx.cs | 20 + .../Chapter22/Profiles/GetProfile.aspx | 20 + .../Chapter22/Profiles/GetProfile.aspx.cs | 30 + .../Chapter22/Profiles/SimpleTypes.aspx | 48 + .../Chapter22/Profiles/SimpleTypes.aspx.cs | 30 + .../Chapter22/Profiles/Web.config | 121 + .../Chapter23/ComponentTest.sln | 61 + .../Chapter23/ComponentTest.suo | Bin 0 -> 13312 bytes .../ComponentTest/Bin/Components.dll | Bin 0 -> 4096 bytes .../ComponentTest/Bin/Components.dll.refresh | Bin 0 -> 78 bytes .../ComponentTest/Bin/Components.pdb | Bin 0 -> 11776 bytes .../Chapter23/ComponentTest/TestPage.aspx | 16 + .../Chapter23/ComponentTest/TestPage.aspx.cs | 23 + .../Chapter23/ComponentTest/Web.config | 113 + .../Chapter23/Components/Components.csproj | 56 + .../Components/Properties/AssemblyInfo.cs | 35 + .../Chapter23/Components/SimpleTest.cs | 25 + .../Components/bin/Debug/Components.dll | Bin 0 -> 4096 bytes .../Components/bin/Debug/Components.pdb | Bin 0 -> 11776 bytes .../obj/Components.csproj.FileList.txt | 5 + .../Components.csproj.FileListAbsolute.txt | 5 + .../Components/obj/Debug/Components.dll | Bin 0 -> 4096 bytes .../Components/obj/Debug/Components.pdb | Bin 0 -> 11776 bytes .../obj/Debug/Refactor/Components.dll | Bin 0 -> 16384 bytes .../Chapter23/DatabaseComponent/DBUtil.cs | 111 + .../DatabaseComponent.csproj | 61 + .../Properties/AssemblyInfo.cs | 36 + .../bin/Debug/DatabaseComponent.dll | Bin 0 -> 6144 bytes .../bin/Debug/DatabaseComponent.pdb | Bin 0 -> 15872 bytes ...abaseComponent.csproj.FileListAbsolute.txt | 5 + .../obj/Debug/DatabaseComponent.dll | Bin 0 -> 6144 bytes .../obj/Debug/DatabaseComponent.pdb | Bin 0 -> 15872 bytes .../Chapter23/DatabaseComponentTest.sln | 61 + .../Chapter23/DatabaseComponentTest.suo | Bin 0 -> 17920 bytes .../DatabaseComponentTest/AdBoard.aspx | 46 + .../DatabaseComponentTest/AdBoard.aspx.cs | 61 + .../AdBoard_DataBinding.aspx | 49 + .../AdBoard_DataBinding.aspx.cs | 20 + .../Bin/DatabaseComponent.dll | Bin 0 -> 6144 bytes .../Bin/DatabaseComponent.pdb | Bin 0 -> 15872 bytes .../DatabaseComponentTest/StyleSheet.css | 11 + .../DatabaseComponentTest/Web.config | 116 + Beginning ASP.NET 3.5/Chapter24/Caching.sln | 35 + Beginning ASP.NET 3.5/Chapter24/Caching.suo | Bin 0 -> 11776 bytes .../Caching/CacheFileDependency.aspx | 19 + .../Caching/CacheFileDependency.aspx.cs | 53 + .../Chapter24/Caching/MultipleViews.aspx | 25 + .../Chapter24/Caching/MultipleViews.aspx.cs | 93 + .../Chapter24/Caching/OutputCaching.aspx | 18 + .../Chapter24/Caching/OutputCaching.aspx.cs | 20 + .../Caching/QueryStringRecipient.aspx | 18 + .../Caching/QueryStringRecipient.aspx.cs | 32 + .../Chapter24/Caching/QueryStringSender.aspx | 18 + .../Caching/QueryStringSender.aspx.cs | 24 + .../Chapter24/Caching/SimpleDataCache.aspx | 21 + .../Chapter24/Caching/SimpleDataCache.aspx.cs | 46 + .../Chapter24/Caching/Sql2000Dependency.aspx | 26 + .../Caching/Sql2000Dependency.aspx.cs | 81 + .../Chapter24/Caching/Sql2005Dependency.aspx | 26 + .../Caching/Sql2005Dependency.aspx.cs | 87 + .../Caching/SqlDataSourceCaching.aspx | 52 + .../Caching/SqlDataSourceCaching.aspx.cs | 19 + .../Chapter24/Caching/StyleSheet.css | 12 + .../Chapter24/Caching/Web.config | 115 + .../Chapter24/Caching/dependency.txt | 1 + Beginning ASP.NET 3.5/Chapter25/Ajax.sln | 35 + Beginning ASP.NET 3.5/Chapter25/Ajax.suo | Bin 0 -> 18944 bytes .../Chapter25/Ajax/AccordionTest.aspx | 82 + .../Chapter25/Ajax/AccordionTest.aspx.cs | 20 + .../Chapter25/Ajax/AutoCompleteTextBox.aspx | 26 + .../Ajax/AutoCompleteTextBox.aspx.cs | 103 + .../Chapter25/Ajax/Bin/AjaxControlToolkit.dll | Bin 0 -> 1146880 bytes .../Ajax/Bin/AjaxControlToolkit.dll.refresh | Bin 0 -> 132 bytes .../Chapter25/Ajax/Bin/AjaxControlToolkit.pdb | Bin 0 -> 787968 bytes .../Bin/ar/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/cs/AjaxControlToolkit.resources.dll | Bin 0 -> 5632 bytes .../Bin/de/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/es/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/fr/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/he/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/hi/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/it/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/ja/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/ko/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/nl/AjaxControlToolkit.resources.dll | Bin 0 -> 11264 bytes .../Bin/pt/AjaxControlToolkit.resources.dll | Bin 0 -> 4608 bytes .../Bin/ru/AjaxControlToolkit.resources.dll | Bin 0 -> 13824 bytes .../tr-TR/AjaxControlToolkit.resources.dll | Bin 0 -> 11776 bytes .../zh-CHS/AjaxControlToolkit.resources.dll | Bin 0 -> 11264 bytes .../zh-CHT/AjaxControlToolkit.resources.dll | Bin 0 -> 11264 bytes .../Chapter25/Ajax/ErrorPage.aspx | 20 + .../Chapter25/Ajax/ErrorPage.aspx.cs | 25 + .../Ajax/GreetingCardMakerRevisited.aspx | 64 + .../Ajax/GreetingCardMakerRevisited.aspx.cs | 110 + .../Chapter25/Ajax/SimpleUpdatePanel.aspx | 64 + .../Chapter25/Ajax/SimpleUpdatePanel.aspx.cs | 29 + .../Chapter25/Ajax/StyleSheet.css | 39 + .../Chapter25/Ajax/TimedRefresh.aspx | 40 + .../Chapter25/Ajax/TimedRefresh.aspx.cs | 36 + .../Chapter25/Ajax/UpdatePanels.aspx | 63 + .../Chapter25/Ajax/UpdatePanels.aspx.cs | 22 + .../Chapter25/Ajax/WaitIndicator.aspx | 63 + .../Chapter25/Ajax/WaitIndicator.aspx.cs | 25 + .../Chapter25/Ajax/Web.config | 115 + Beginning ASP.NET 3.5/Chapter25/Ajax/ajax.jpg | Bin 0 -> 19215 bytes .../Chapter25/Ajax/lava_lamp.gif | Bin 0 -> 24332 bytes Beginning ASP.NET 3.5/Chapter25/Ajax/wait.gif | Bin 0 -> 1522 bytes Beginning ASP.NET 3.5/InstAdboard.sql | Bin 0 -> 3810 bytes Beginning ASP.NET 3.5/InstNwnd.sql | Bin 0 -> 2115268 bytes Beginning ASP.NET 3.5/InstPubs.sql | 2163 +++++++++++++++++ Beginning ASP.NET 3.5/readme.txt | 159 ++ LICENSE.txt | 27 + README.md | 15 + contributing.md | 14 + 524 files changed, 18776 insertions(+) create mode 100644 9781590598917.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter03/App_Code/Product.cs create mode 100644 Beginning ASP.NET 3.5/Chapter03/Default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter03/Garbage.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter03/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.html create mode 100644 Beginning ASP.NET 3.5/Chapter05/Global.asax create mode 100644 Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter05/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter05/button.png create mode 100644 Beginning ASP.NET 3.5/Chapter05/pic0.png create mode 100644 Beginning ASP.NET 3.5/Chapter05/pic1.png create mode 100644 Beginning ASP.NET 3.5/Chapter05/pic2.png create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker.sln create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker.suo create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.suo create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/defaultpic.png create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls.sln create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls.suo create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter06/WebControls/cellpic.PNG create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions.sln create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions.suo create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless1.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless1.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement.sln create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement.suo create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter07/StateManagement/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling.sln create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling.suo create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter08/ErrorHandling/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation.sln create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation.suo create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ErrorIcon.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ManualValidation.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ManualValidation.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter10/Validation/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls.sln create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls.suo create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/MainAds.xml create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/defaultpic.png create mode 100644 Beginning ASP.NET 3.5/Chapter11/RichControls/msasp.gif create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing.sln create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing.suo create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/ContentAndGraphics.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/ContentAndGraphics.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter12/CustomDrawing/smiley.gif create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls.sln create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls.suo create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/LinkClickedEventArgs.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/NameTextBox.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter12/UserControls/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages.sln create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages.suo create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter13/MasterPages/apress.JPG create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes.sln create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes.suo create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/ButtonImages/buttonCancel.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/ButtonImages/buttonOK.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Buttons.skin create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Calendar.skin create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/FunkyTheme.skin create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/ProTheme/ProTheme.skin create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter13/Themes/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.sln create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.suo create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.sitemap create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/arrowright.gif create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/default.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.sln create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.suo create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/MasterPage.master create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/MasterPage.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.Config create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.sitemap create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/arrowright.gif create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/default.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.sln create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.suo create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.sitemap create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/arrowright.gif create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/default.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET.sln create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET.suo create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter15/ADO.NET/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding.sln create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding.suo create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/Images/picture.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/ListDataBinding.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/ListDataBinding.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditor.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditor.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditorDataSource.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditorDataSource.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditorDataSource_MatchAllValues.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/RecordEditorDataSource_MatchAllValues.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/SimpleDataBinding.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/SimpleDataBinding.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/UpdateDeleteInsert.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/UpdateDeleteInsert.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter16/DataBinding/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls.sln create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls.suo create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/BasicGridView.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/BasicGridView.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/BasicGridView_SqlDataSource.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/BasicGridView_SqlDataSource.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/DetailsViewTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/DetailsViewTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/FormViewTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/FormViewTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/FormatHighPrices.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/FormatHighPrices.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewEdit.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewEdit.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewSelect.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewSelect.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewSortPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewSortPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewStyles.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewStyles.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewTemplates.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/GridViewTemplates.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter17/DataControls/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem.sln create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem.suo create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/FTP/Sample File 1.txt create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/FTP/Sample File 2.txt create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/FTP/Sample File 3.txt create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/FileBrowser.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/FileBrowser.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/ViewFiles.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/ViewFiles.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileSystem/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading.sln create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading.suo create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading/GuestBook.suo create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading/UploadFile.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading/UploadFile.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter18/FileUploading/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook.sln create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook.suo create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/App_Code/BookEntry.cs create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/GuestBook.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/GuestBook.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/GuestBook/63266521720234375055 create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/GuestBook/63266521737765625019 create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/GuestBook/63266521747843750020 create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter18/GuestBook/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml.sln create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml.suo create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Code/Product.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/AppSuperProProductList.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/InvalidData.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/InvalidTag.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/SuperProProductList.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/SuperProProductList.xsd create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/SuperProProductList.xsl create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/SuperProProductListNested.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/SuperProTransform.xml create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/App_Data/authors.xsl create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDataBinding.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDataBinding.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDataSet.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDataSet.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDocumentTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlDocumentTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlTransform.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlTransform.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlValidation.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlValidation.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlWriterTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter19/Xml/XmlWriterTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity.sln create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity.suo create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/Default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/Default.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/Login.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/Login.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/SecuredPages/SecuredPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/SecuredPages/SecuredPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/SecuredPages/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/UnSecuredPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/UnSecuredPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/FormsSecurity/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity.sln create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity.suo create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/SecuredPages/SecuredPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/SecuredPages/SecuredPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/SecuredPages/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/UnSecuredPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/UnSecuredPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter20/WindowsSecurity/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership.sln create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership.suo create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Default.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Default.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Login.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Login.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/ManageUsers.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/ManageUsers.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/PasswordRecovery.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/PasswordRecovery.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Register.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Register.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter21/Membership/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles.sln create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles.suo create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/App_Code/Address.cs create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/ComplexTypes.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/ComplexTypes.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/GetAllProfiles.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/GetAllProfiles.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/GetProfile.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/GetProfile.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/SimpleTypes.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/SimpleTypes.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter22/Profiles/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest.sln create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest.suo create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/Bin/Components.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/Bin/Components.dll.refresh create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/Bin/Components.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/TestPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/TestPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/ComponentTest/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/Components.csproj create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/Properties/AssemblyInfo.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/SimpleTest.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/bin/Debug/Components.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/bin/Debug/Components.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/obj/Components.csproj.FileList.txt create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/obj/Debug/Components.csproj.FileListAbsolute.txt create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/obj/Debug/Components.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/obj/Debug/Components.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/Components/obj/Debug/Refactor/Components.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/DBUtil.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/DatabaseComponent.csproj create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/Properties/AssemblyInfo.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/bin/Debug/DatabaseComponent.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/bin/Debug/DatabaseComponent.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/obj/Debug/DatabaseComponent.csproj.FileListAbsolute.txt create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/obj/Debug/DatabaseComponent.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponent/obj/Debug/DatabaseComponent.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest.sln create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest.suo create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/AdBoard.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/AdBoard.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/AdBoard_DataBinding.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/AdBoard_DataBinding.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/Bin/DatabaseComponent.dll create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/Bin/DatabaseComponent.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter23/DatabaseComponentTest/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching.sln create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching.suo create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/CacheFileDependency.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/CacheFileDependency.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/MultipleViews.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/MultipleViews.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/OutputCaching.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/OutputCaching.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/QueryStringRecipient.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/QueryStringRecipient.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/QueryStringSender.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/QueryStringSender.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/SimpleDataCache.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/SimpleDataCache.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/Sql2000Dependency.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/Sql2000Dependency.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/Sql2005Dependency.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/Sql2005Dependency.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/SqlDataSourceCaching.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/SqlDataSourceCaching.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter24/Caching/dependency.txt create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax.sln create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax.suo create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/AccordionTest.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/AccordionTest.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/AutoCompleteTextBox.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/AutoCompleteTextBox.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/AjaxControlToolkit.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/AjaxControlToolkit.dll.refresh create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/AjaxControlToolkit.pdb create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/ar/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/cs/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/de/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/es/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/fr/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/he/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/hi/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/it/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/ja/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/ko/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/nl/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/pt/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/ru/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/tr-TR/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/zh-CHS/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Bin/zh-CHT/AjaxControlToolkit.resources.dll create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/ErrorPage.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/ErrorPage.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/GreetingCardMakerRevisited.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/GreetingCardMakerRevisited.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/SimpleUpdatePanel.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/SimpleUpdatePanel.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/StyleSheet.css create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/TimedRefresh.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/TimedRefresh.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/UpdatePanels.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/UpdatePanels.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/WaitIndicator.aspx create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/WaitIndicator.aspx.cs create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/Web.config create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/ajax.jpg create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/lava_lamp.gif create mode 100644 Beginning ASP.NET 3.5/Chapter25/Ajax/wait.gif create mode 100644 Beginning ASP.NET 3.5/InstAdboard.sql create mode 100644 Beginning ASP.NET 3.5/InstNwnd.sql create mode 100644 Beginning ASP.NET 3.5/InstPubs.sql create mode 100644 Beginning ASP.NET 3.5/readme.txt create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 contributing.md diff --git a/9781590598917.jpg b/9781590598917.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6e8c0a93c8068beb3fefd08c2bb9a3e036a07b6 GIT binary patch literal 12276 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 B&G-NS literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter03/App_Code/Product.cs b/Beginning ASP.NET 3.5/Chapter03/App_Code/Product.cs new file mode 100644 index 0000000..526269f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter03/App_Code/Product.cs @@ -0,0 +1,62 @@ +using System; + +// Define the delegate that represents the event. +public delegate void PriceChangedEventHandler(); + +public class Product +{ + private string name; + private decimal price; + private string imageUrl; + + public string Name + { + get + { return name; } + set + { name = value; } + } + + // Define the event. + public event PriceChangedEventHandler PriceChanged; + + public decimal Price + { + get + { return price; } + set + { + price = value; + + // Fire the event, provided there is at least one listener. + if (PriceChanged != null) + { + PriceChanged(); + } + } + } + + public string ImageUrl + { + get + { return imageUrl; } + set + { imageUrl = value; } + } + + public string GetHtml() + { + string htmlString; + htmlString = "

" + name + "


"; + htmlString += "

Costs: " + price.ToString() + "


"; + htmlString += ""; + return htmlString; + } + + public Product(string name, decimal price) + { + Name = name; + Price = price; + } +} + diff --git a/Beginning ASP.NET 3.5/Chapter03/Default.aspx b/Beginning ASP.NET 3.5/Chapter03/Default.aspx new file mode 100644 index 0000000..dc177b3 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter03/Default.aspx @@ -0,0 +1,19 @@ +<%@ Page Language="C#" %> + + + + + + + + Product Test + + + diff --git a/Beginning ASP.NET 3.5/Chapter03/Garbage.jpg b/Beginning ASP.NET 3.5/Chapter03/Garbage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d704155fdc3f3deb360a3dbc109ce0f22df69115 GIT binary patch literal 15884 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 literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter03/Web.config b/Beginning ASP.NET 3.5/Chapter03/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter03/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx new file mode 100644 index 0000000..d801b39 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx @@ -0,0 +1,30 @@ +<%@ Page Language="C#" AutoEventWireup="true" + CodeFile="CurrencyConverter.aspx.cs" Inherits="CurrencyConverter" %> + + + + + + Currency Converter + + +
+ +
+ Convert:   +   U.S. dollars to   + + +

+ Currency Graph +

+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx.cs b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx.cs new file mode 100644 index 0000000..eea8c25 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.aspx.cs @@ -0,0 +1,45 @@ +using System; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +public partial class CurrencyConverter : System.Web.UI.Page +{ + protected void Page_Load(Object sender, EventArgs e) + { + if (this.IsPostBack == false) + { + // The HtmlSelect control accepts text or ListItem objects. + Currency.Items.Add(new ListItem("Euros", "0.85")); + Currency.Items.Add(new ListItem("Japanese Yen", "110.33")); + Currency.Items.Add(new ListItem("Canadian Dollars", "1.2")); + } + Graph.Visible = false; + } + protected void Convert_ServerClick(object sender, EventArgs e) + { + decimal amount; + bool success = Decimal.TryParse(US.Value, out amount); + if (success) + { + // Retrieve the selected ListItem object by its index number. + ListItem item = Currency.Items[Currency.SelectedIndex]; + + decimal newAmount = amount * Decimal.Parse(item.Value); + Result.InnerText = amount.ToString() + " U.S. dollars = "; + Result.InnerText += newAmount.ToString() + " " + item.Text; + } + else + { + Result.InnerText = "The number you typed in was not in the correct format. "; + Result.InnerText += "Use only numbers."; + } + } + + protected void ShowGraph_ServerClick(object sender, EventArgs e) + { + Graph.Src = "Pic" + Currency.SelectedIndex.ToString() + ".png"; + Graph.Visible = true; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.html b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.html new file mode 100644 index 0000000..2c4b391 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/CurrencyConverter.html @@ -0,0 +1,22 @@ + + + + + Currency Converter + + +
+
+ Convert:  + +  U.S. dollars to Euros. +

+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter05/Global.asax b/Beginning ASP.NET 3.5/Chapter05/Global.asax new file mode 100644 index 0000000..94ef54f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/Global.asax @@ -0,0 +1,12 @@ +<%@ Application Language="C#" %> + + diff --git a/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx b/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx new file mode 100644 index 0000000..bb058ab --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx @@ -0,0 +1,21 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HtmlEncodeTest.aspx.cs" Inherits="HtmlEncodeTest" %> + + + + + + Untitled Page + + +
+
+

Properly encoded:

+
+


+

Incorrectly encoded:

+
+
+ + + diff --git a/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx.cs new file mode 100644 index 0000000..898db69 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/HtmlEncodeTest.aspx.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class HtmlEncodeTest : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + ctrl1.InnerHtml = "To bold text use the tag."; + ctrl2.InnerHtml = "To bold text use the " + Server.HtmlEncode("") + " tag."; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx b/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx new file mode 100644 index 0000000..81213de --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageTest.aspx.cs" Inherits="ImageTest" %> + + + + + + Untitled Page + + +
+
+ +

Click on the Image

+ + +
+
+ + +
+ + + diff --git a/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx.cs new file mode 100644 index 0000000..1812b0b --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/ImageTest.aspx.cs @@ -0,0 +1,35 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ImageTest : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + } + + protected void ImgButton_ServerClick(Object sender, + ImageClickEventArgs e) + { + Result.InnerText = "You clicked at (" + e.X.ToString() + + ", " + e.Y.ToString() + "). "; + + if ((e.Y < 100) && (e.Y > 20) && (e.X > 20) && (e.X < 275)) + { + Result.InnerText += "You clicked on the button surface."; + } + else + { + Result.InnerText += "You clicked the button border."; + } + Response.Redirect("HtmlEncodeTest.aspx"); + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx b/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx new file mode 100644 index 0000000..8320de8 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowSettings.aspx.cs" Inherits="ShowSettings" %> + + + + + + Untitled Page + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx.cs b/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx.cs new file mode 100644 index 0000000..c7e8424 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/ShowSettings.aspx.cs @@ -0,0 +1,21 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Web.Configuration; + +public partial class ShowSettings : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + lblTest.Text = "This app will look for data in the directory:
"; + lblTest.Text += WebConfigurationManager.AppSettings["DataFilePath"]; + lblTest.Text += ""; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter05/Web.config b/Beginning ASP.NET 3.5/Chapter05/Web.config new file mode 100644 index 0000000..1862df7 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter05/Web.config @@ -0,0 +1,117 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter05/button.png b/Beginning ASP.NET 3.5/Chapter05/button.png new file mode 100644 index 0000000000000000000000000000000000000000..0eae1f7ecc354d003cbe3e1a5f4f3f1422d1d6da GIT binary patch literal 71023 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 Tk?gBqU_ZhF;`{}?8eje&n)cXF literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter05/pic0.png b/Beginning ASP.NET 3.5/Chapter05/pic0.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe57ed128c3322c9e4a38e7f3d43caff2f57911 GIT binary patch literal 2891 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 II_MemZ(mOby#N3J literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter05/pic1.png b/Beginning ASP.NET 3.5/Chapter05/pic1.png new file mode 100644 index 0000000000000000000000000000000000000000..b01997f0fc4c26056555fbe1d655cbd67bc82305 GIT binary patch literal 2952 zcmX|D2{@Er7eDWe89NjClOT9%Ex;OP~%GiNv*Q7x}_h_>kWgv!JdHLfxP8 z07P*XW~O$bIiGT;F6QHLvEn-WXNKn*KJ&~@V&zBGI^XBq4wkasTR>VN6Z8fzH0xUQ zu3_IZvx)9^-?AtlVy+ab+>%EtxsF{=HM|<%f(>^AgKZj4O8A8iX%hhh$caafwTYTg zt6U`|5jAB!&M}!PB9+Iqt%o9bJ-bT42 zWozsTl*%TKJ!#&#rXhDoeN~a@$dlwMKACB>c2lMl+0J6 zFRE~Pv98S9oSZ$A(LfK@tXH@k({_6?ID0Xp&YpeP0M}TQ4~7R&-Xel5L18qDc?{vq z5@ohp_C0ueXhP}DUc-_oMyg-bNRB8OCt$iHl_}$~3vRP<4^530Mq~aMyG1nY+5hlK z`Po~ub+!JjZ;BB8aK??1*J(ayTI6K2E{~w;bpi-W#*&9+Ip0?*H*HX%Hq|t9SIWXY zgmusID4I3UtsEwl;&9{}l~;mnM_3q3;M5X`TQJZ}TqVf~s~=yyk@s$~qhs@oq5br+ z6Wfk;=+4b-CsO>bvK>&SqhupvDfFcIBV@{P-kZXJPx2Pb4JoV4*o- z2JFopNe!L*E_;>(Xz_56XVy+BWgj2VKx847;+qG_>#giEYj*+JSOs zM%|^B|HYMHm7jjhtzaD_Q@TuAHr@+U3qg~WfBdkY%iE&iqa9jH`+Mjn?k#S_kAwC!WAJNi3E5tYEyBXjE;WiISHQc(+NpdnSWRaioc@@Wtk~S zMI)(*I$+(rj)L}mW_pEgY zyMBG6!p8Zl00pW;KXxzJ_BK{tvd6Hske<7m-cENAviIvlFw{5eB%L1p$L8HzI~dC3 zm40#ly0sQbxpkZg8W+g0zREyLe|Y#9pV!{ERuOJ*Z7qi7vKPi$6_zt)B zz!@V*Jl^Uf+th)fe;4h{5jpdPXOeCu55f8IMAygPDO!p}FEOxq z8ZuN%#SA@Q?`59os*t6ipw4CM?mMCBb!Agog5*|TPnr=*n-Snu-feCf$-}%DzxzP? z$5d~Oigc#FX^F+~9lB2Lzm-buX&)pc+Au@k;va^_oM_d+tO1(Ar&7xK>59`kdJ-P5 zg@DTw*bl{cW-aA+lGY*(zoQLk@}Hg*?)|Nzm29`62NIg-yYin6F&zY2x#!Pp&nyJd*t^{7UaDzrP%k*&(~^adld!)Etp*(SG}9a= zg~>gdCg8<9+-m$y>f?`(eCPb#wgR!vim~G;K6o78C9q}Ttc;@obbHN*uKy*m{b_4B zVjZ$y87gZ(Ug(%f+=ziAx`)jeVV+tp^Gtq>PF#1m$*1QSnDy>w&&CP*>~uX)qnY*- z=one(v;?*_(1m3Q;e6L+U0hZzlA(6b(i+O*o__@h(jbCuWWYqMM32#nvN}&&D7;4VqvQ0BX8a7f+BSk9Bhs?E^w_@J0N-4 zE3y#{2cN|zPYwK#`)h}$mrYV^fmO$Sx zJ2zjd-T!Aq5?%%Oot8XoUk99W!k0D8O7E6T36iE*2#i95$zPakDhR?+2skZ61oXny z;7;zJ-ZzEuz}ch*_ydv{eDMC8`4qvx`cqqignjf^2*N74YlF%dkf(n4J2~)0xo49i zRAyJ2#HhV4bo%J{I6%m2OTrJa@u`=DbD}lR3wC_Y6U*>u!_t>BZ^vl*^sm87edrxm zL|M3u($~oP6WrpzS$dBMj4P}Zgj0B-B?;H`4PC7nrBJYgmYG(sGEq-!o{g;<8vGDV zQl+{K#5(lNwcQ9gc6aLY6w#{v&LVk!CW2CAli^o~VOjb=@n$MO(^wScWKwEhT$@#g z-{iraz``pCo~pscOut4n_{QGy1xJ(pM8bR)g*FO;x`VE-A1h^q)pXkj8MF zk5{Yjb8*q~*;m2$D^e!z@O8#Mqx$FMgsbB_|9)b_yNw)O;=r#OYFB1b&D*gRcjfME z#+~P9n*UZMOSOr`zlQ&;bKCX#b5pXWP5b-{;-lF;Cr-QHXIvN9AW ztUPE>bQl6-Bu92BqHQ>7L^wd`JC-LJ`SX!mK$(O_l4{F-9(o=$%b?4 zEm2pzX8I;PLb3xg7v85Q+HNn%dC@Mb>FwwLDj#(xz@)(G-Mr(e{)w-Ib&porCHq&#%+L0`kfu%;dwi%0vw>52Q7a6t_Zx{_Y8BvoiMnzP zdVNDCw_oEnYgA#)(e&rPZ{E#aR}L-pK%Vh2k4>9%n9sS~x8X`bkT}ll1SM_oeR^tw zoa4*ZkbA+LyCSwzUd1S;kYm$#s(rgWS0%K}_m()hfAxFoEXPvU(KMG{Y=EaK@Ah-$%Ywmn)x=Nt*4|(S5?9ykAg~_>o@R^uL8IiNg2PghYnCcy Ni=9?xrQ7MJ{sWIhEgk>> literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter05/pic2.png b/Beginning ASP.NET 3.5/Chapter05/pic2.png new file mode 100644 index 0000000000000000000000000000000000000000..636e9228984b5e6f733ce65e2dc4bb21ae38becc GIT binary patch literal 2525 zcmdT`i#HTn7vD3+j8Wt^xuI)J@`$dyYRGexlxI_-2MsE@xE{T{9}_9MH$x9Z7?Bt; zlrkA=s4kLAk>_9v7h_0>Fvd6T_x%&!UcYsI`?vNvXRUMgUT2>qveN+>X(ed@kg+{z zeFOk0cA-g1LOh-xh{zU`A=%;R{?&hNEe60~FwUJjH!?D^CfKlQV4$kHDu&n*OR=rq z12!AN&c2-jzcLz?FO6~fxO8VeT#Za*( zNhV_d#f?+>=#=f1h=Luz&t_G}n$Az&kOq<*3Y)6&y_SMIc%5+Eu6=ydqnlYbLcmc) z|07{;biU;v=v4_mFhaEk>~2VMh|15Zrj$Y)IadnP2J5OOS5NgyHz@^vRXBEy;5_6% zvjN`k43IsOMGujnzO$U^H(5T)KD)(YZ`U{Uj1AIP8pDy@h=xgBNtkVR73|tSDeE5~ zD~NvQI_aM-;NzIOU?qoIL!0$X@9J4HPr}@d$T!{OpgBFukbj=>UhT!(>r6y4kafe{ zed?h+y7#ZpoFl=9z8PjZWLW%lPUOu)d+X{xDD_l^29trD_ zz%!r`c;2YW$;SHkD<~+N@vJ{(O>#T7tr`XH!*vN~6(H$P1j%x;l{uK~{F$Ngf+GnI z{BM?pK}uZ#RLufH-F_@WCtfDW8|btc{b=^SzCS8t_Qb!o$bHmi&KuDXLX(8$I0F+wSQ~KyvfX=QU~GT~5>cj+^%0IUx(O z&GP4UY4o0hmNm})*G`Po0OxS3s>SR0OzX@osWRaRDzPH{d~1>SeQe+7#K50%kf`la zKEF$una$Ql5q`OFFi>6|5}TNmMc1ASMbWN{0Y$dPtUFwdtsr-sO%03-n&1ZFpLzHg zey(p>ZwSzx2n_JO4t zHx*i-wtjIp0#a&W@NItXbX?*TzF}%``|Ow|wDsk?2@#}{osx8qH7-NZ&#Wl-S8BVc<(Yg@b7AIgTxr?MQBTV48$=F^ z|1>JMo0+mgvA=tOjhE%1w*4mD41hV>wT>0G-dx0?JPA4JXO=v+22OaHzn!dakHj+=T zvJ{;ri)8LLRgI@~E``=lIyX~e#o=QG=wRQ9k}Kmm3%A^x%x`A#ALyhm62-f&hxs40 zTx5*)(w;v%)(H$wRW5DDKSV*8I&}L%>7c&Ox~xoLW1;mE<^Ym$r_%y@?=N01l<|DC zLa-}$B5qyicBN4;en2VvY0NL$Fn5onLipECPk$kI-EjlBG=3Qgl;}WgbAMjC?*|`z zKN=()Bl>X};YohgR_SPZYdKDQ)~|(aA44-bVVc4IZYr+BiAr{yvrP3Hi%(|Dshfaz zc_83((m5os{vLiaiu^*GDVQ(rO3)Nf>=0Kg8Y0HE@KtC+CppS47)Y+*NxU6tv1NO= z1V}9a)SCk}cmoi)|Bv#F0%Y3M@<)eg6IyjI3?UOay+SvV1&%x3rvpwRsJ`Y-KpNVl zSJ9vdQ3*<(M`#t0k;Z9y1mbu8i_(=|4DY=&n3WkS>d8`dGz@J6Q!x?{5Wwm-#WHEf5+O+F;AY#p}BJIAUOzH4a$zOP_(?E01TuuGPbS9{p?{Bswc2-{W* zRpMt8l{{mQ&i~44wYj5`H?kjm&>cxhG;y6oj&B%@{@nUUohT=!^YnPUA*Qpo{zm$>AW_m`$_)`(aqX ztabO-x6oUQCq-7M**}YA@pS|mKbC!3#-CSI*GJrX*oxD!G;$F+hg%K%7Kf=@ziYxr zrQRaW6IGPM5*iGmov()eiP7EkVOS;B-CrXX4W$`oIoo1iHEB9dpp=Y`X-{aL+`GK= zsSM{ZZZgjcX?_4G4^y0RVed&9E^hQ*l-b~@mNeB(a47mu9tRu-d=hXB@B{!VAdUh)1^6`JIDoo9 z_^3P@9Jnql{9F+cNm0Pv7MqY__|gZBQ7fh1G%E9F{&eT!kw0`Dz@Uqt@kh=Bqa|*M z8DP($mJ}O}rl{%bgBMcxd9N9;Lj!e}Wl2b}DjZ>8?NZ!8O@bnys-jnS(I?SfzYK`S zx@Z@)hp_nRGhYp+TM#XJ%oH9|i z%X>O_=Dez%>!dHB52&_(`UH-nA5i0YCv8sxJ`d;zd;xF*@I^ob@Fl=Wz?T6W{}tSy z3hJkEe>$k2!F>QQ2#5ln0mJ}9fU|&MzzBeIjNv{Gm;g)y&Ht%frZA(G>H*o)E)ff!3UBHjmyoh+(UW5b- z=%d#eMt#(K>n8e&o)y}V>=@eeute#N^WV;3gpIk^abH8bjWO+(e`?h5{VR%piNv|I zW@Tl1O6HA1!6@V-@zi|uYH}em934$-H}#?`?bulQk}ai+ZcVqdbNU+JZ>K2#DLBoY@@IY=7C*=Kkzpu1lhWmDqYmG zXtVG%i5182-Xi8^bhFW$#%SsWnmI8_RNHyiLpp}*D^KdfS-E`?lHpRuk?Qj%$tD*tp_t#u6Z7P z{?2gcNE8eFFZV@Z@snSS!7PpNtG!?XoN)p5N;HT++>?dH&#kxeyNq+RAQf$WKIb6$ zJX+~LRZl(a+>`A-{(Kfw{XQ_TYlv~T;FIaAt7W|C?cnO;RjthbxNcQcd!zd)biNV{ z(6D;$z#T6JNN9RB6^&*R-u|1o$y44NkM?^j^-pOz?Vt!+XnC{-#vt;(Sq9AfvmeuP z{~i|qS26ZgpA_%>ZVr+*JvsYW8R1HxM$yJyGw0_ndIZ<+V#hX)-z0t-a)CH@EY|xW8rB6vyqHK%fc?9)AoW~>qqiC5%Zwwj|$GeHpSecv0;gRWe zZi81Ec$4?I(c|U#_4voLomNXqoO=Aj_?aL6?()6A-o1b9=Sxq_iVuGCujSWH{yO=K zbAQgf`R@&e7o7dre|$dv^qaS?y!)4*e((B&U)}XFro=?<`1=puKQa5xPqOd5apE77 zyL-P?y48CxLKPN9;iimdZoP>@`O?H@p;l(*4V_S}ubEAufQ_{_pTgn<%G+DqQ zNYOSNxnNnQ6V*)JaT3xo@&#!RL>8s(7*^r@WHiR#KtwBSWBRaum~L(+wduHWy*%C7(9?~N>!X>`v7yP~5gD79 z?B=58T3Jg}OC&dnmhC1C-L&#k)<#OYJoaJS?kn2zwqcbVb5px1Gix$C1A3h!s(IGR z=q~usuNr37^}L+6>~-Dc$eBV`ZXCC6OWQVXAfIB?(V;^Uu-&hg^DLmPTM&PDeg07y z|1QJMvmWjOJiG~NroD`W)Yv;_on=yppFH7rsIc*`62Im}E5=?%UY>v%-~~C72R%Ha zq$lFpW&P4h{_{0V_10GY!`#dCaQJx2k)O0QJA*^~_twp|v(%?@d+R734+jZoRwg$L zhnh8QnDQVL_8DLOqnc%!GDAIbqN$?HKoO1a$ZRy_+B|;T>ZQr_ba6So6vQE(uK5<- z&F9@tN0T|2)m{BSe;q>Nwykf@f?#6p<>u!gFHMIYS}|xM-75~((6a*7r=tL=Jw3ev zCom1RG3tS5G+_$!{yWf`PMw|%Av;QAcf|8Q?n!uJL5k@xNPllAe0%RXDrJ{OEG$8n*I@nS z_GbQop170LhPS}xR$8l#{Q9=n_L%_x3ed52#M4X#C+o?YA?xKmmNmT>y*ba;=*Mcg z!WeqDgH&`@{Q9@%MHm}*NANtJJJlgz;~)GI$vRGDHm_siL5IF|Gy|7Oa@yeVw{$?r|4gXz`(T-5(xnBn-DI8S98 ze|zKnKcyr;hZP2;p72`%IKl?GiKME*sc+23cmk#@jUeyAT0hH82j5`;zszn{$_>yFaGC8X;!oG>|X}F9Sj`8 zDbWagz!11Th0~%zT+gD;lSH5Yv5xcqTfnXOACS@3O<7b}{{?vnwaCKDC}YORZ^Y*MCbpy(Cwo8LN;p@|^w9bA^&=UZ_Fzf7 + + + + + + Greeting Card Maker + + +
+
+
Choose + a background color:
+ +

+ Choose a font:
+ +

+ Specify a numeric font size:
+ +

+ Choose a border style:
+ +

+ +

+ Enter the greeting text below:
+ +

+ +
+
  + +


+ +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.aspx.cs new file mode 100644 index 0000000..c667b45 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.aspx.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Web; +using System.Web.SessionState; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +namespace GreetingCardMaker +{ + + public partial class GreetingCardMaker : System.Web.UI.Page + { + protected void Page_Load(object sender, System.EventArgs e) + { + if (this.IsPostBack == false) + { + // Set color options. + lstBackColor.Items.Add("White"); + lstBackColor.Items.Add("Red"); + lstBackColor.Items.Add("Green"); + lstBackColor.Items.Add("Blue"); + lstBackColor.Items.Add("Yellow"); + + // Set font options. + lstFontName.Items.Add("Times New Roman"); + lstFontName.Items.Add("Arial"); + lstFontName.Items.Add("Verdana"); + lstFontName.Items.Add("Tahoma"); + + // Set border style options by adding a series of + // ListItem objects. + ListItem item = new ListItem(); + + // The item text indicates the name of the option. + item.Text = BorderStyle.None.ToString(); + + // The item value records the corresponding integer + // from the enumeration. To obtain this value, you + // must cast the enumeration value to an integer, + // and then convert the number to a string so it + // can be placed in the HTML page. + item.Value = ((int)BorderStyle.None).ToString(); + + // Add the item. + lstBorder.Items.Add(item); + + // Now repeat the process for two other border styles. + item = new ListItem(); + item.Text = BorderStyle.Double.ToString(); + item.Value = ((int)BorderStyle.Double).ToString(); + lstBorder.Items.Add(item); + + item = new ListItem(); + item.Text = BorderStyle.Solid.ToString(); + item.Value = ((int)BorderStyle.Solid).ToString(); + lstBorder.Items.Add(item); + + // Select the first border option. + lstBorder.SelectedIndex = 0; + + // Set the picture. + imgDefault.ImageUrl = "defaultpic.png"; + } + } + + protected void cmdUpdate_Click(object sender, System.EventArgs e) + { + // Update the color. + pnlCard.BackColor = Color.FromName(lstBackColor.SelectedItem.Text); + + // Update the font. + lblGreeting.Font.Name = lstFontName.SelectedItem.Text; + + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = + FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Use error handling to ignore invalid value. + } + + // Update the border style. + pnlCard.BorderStyle = (BorderStyle)Int32.Parse(lstBorder.SelectedItem.Value); + + // Update the picture. + if (chkPicture.Checked == true) + { + imgDefault.Visible = true; + } + else + { + imgDefault.Visible = false; + } + + // Set the text. + lblGreeting.Text = txtGreeting.Text; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.suo b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker.suo new file mode 100644 index 0000000000000000000000000000000000000000..33dedc6718c27ea3e1486bf09a09123652384dfc GIT binary patch literal 7168 zcmeHL&u<$=6n<_3Z9>wfKm!z7me3+VG-^wrG=WNqotBii4RO*$l@IvG#&Np#TI+4v z2sj{tg!luhaH7Bk5FFqH94HbTKpa{LAr5eWzo2je2}t<9+1;$O#P-HXfk=7Q+nJr6 zneWZKUo*aTb>~lSez^N*3D7ZVl7+<T@5W5JHi%SISYfW8edA zoHQh7Bq4E$$p}zQDJgUtyD*^MFSznJz5n@q82H}$!{S%QOCLW522DEq${Qe9FQ&PMtge<~!$ONv4|U|BM5~Xa{cx^Becw>*tlb(AEjQ1AHg= zF7R&f-Qat`d%)~_FG|g=ce$lEhgYK8Cf(p2_$BH(B6QFQ(Iz_LbJ}=Wx3s8Pv@O$6 zKD#5P&*n4wvbN?}%1#lbbuvDzB{I``LA|!e@+rg2X@l9kZCdQm5jWF$L)Rwsw07LI z3Tn!hWpAxfvrsaNdeK%No1Y$w4|8byM823cFO>ap+oMLllr~dVRvXP1bL_PBgkIFG zl;NLe*xCR^Fy<^cD!r1#)08Z{H7Wh@-x2ASQ;4f$>dQ1DT?rA6zI{-RpzQ=|I({~M zya>OKqKAd?ag^s&zhqsBh`$yZf^^IPhNSVl7&7Ykh#KM#O>`%kSo&Y8*C_KB?q^25 zw4BH4b85vCSi6mgH;uP?v7b{A|2C97!-U0W-`l~YAU>nMuJ*r#{h(g#nsPh{{2iEw z*d#S+od?fYQ*NIi{vdR~cuz~oLxN&WbjECF|C!Ii;`40h<-Z{Qakb_w?7)OpteUxp zOYrcypJDNdeaSW4AbuQcF94h8kO@~7Q<#NUrbn=T<}c=@u=v#1m^&T!+wsXFv~CF3 zZz$Vy&I2>3XV8P5OBH>x744#5?8qQEWy`5J(sKIt@ z)U#+a@y(BcXE2U&kE3mrA}{|-h>R%)Rx$Czsy;YdIY0>c@I))`~>?57JuN zf^*%-cgDiC&|1gS7vr#20~V53mdhMW`z^UQf*JI9N}Z2I`lJVM&%+=3|DhrtKX9>p!92eqT<$=VT&iNfa(sUC;qMR-RR(TyJC)Z zYk8mL(TRPxsq_14Wvdl`yt`NovQfU3s2lOeyCZ~+e_p=ke9SWjcH4__PMn>BE^=sP z{PDi5gf4>kzZ84J;xkvBbsgk1P9HO{0LHp%F@9xar*&@w_*xK-g|BIweR2%lR%=nUt$h@Ej`@{q*5!qz?9h$aJfO7Av)=&v zWP$Db-IMDsiGT74F9mPH{m31($yvxBh19%H(EF$bf6hL!^*ePb*FODq^3|?S2H)@fE;Ikz#XUM(_kru*8btoEzCPLi(EQ9Z?|gsxrO}0t z-+P_r9(HsSFYXgqUV6zGneGj!Oyq5F1wE_r{*zI+pA0%>F)XRHTY_%+PX;qRbsD_= z(Bmp^KNUv^(uMY=o#OWjWcUoa>yrtDX9NnYtQ? zzm@UN`=8PK|1kl{xCgw0GAq@Sfd4;o-5&XpRj=KTPu~5@+y5c#!xWIIht*K0yZ`)8 zjxvN9%Q(RQ?nr*ba_-;${cjGQ$o~Wkr(=~T?tiOZ|9;HH9K2rS?S0twuNSU2&ql`o E8^K1}0RR91 literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx new file mode 100644 index 0000000..d2d36ce --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx @@ -0,0 +1,43 @@ +<%@ Page language="c#" Inherits="GreetingCardMaker.GreetingCardMaker2" CodeFile="GreetingCardMaker2.aspx.cs" %> + + + + + + Greeting Card Maker + + +
+
+
Choose + a background color:
+
+
+ Choose a foreground (text) color:
+
+
+ Choose a font name:
+
+
+ Specify a font size:
+
+
+ Choose a border style:
+
+
+
+
+ Enter the greeting text below:
+
+
+  
+
  + +


+ +
+
+
+ + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx.cs new file mode 100644 index 0000000..6123493 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/GreetingCardMaker2.aspx.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Web; +using System.Web.SessionState; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; +using System.Drawing.Text; + +namespace GreetingCardMaker +{ + public partial class GreetingCardMaker2 : System.Web.UI.Page + { + protected void Page_Load(object sender, System.EventArgs e) + { + if (this.IsPostBack == false) + { + // Get the list of colors. + string[] colorArray = Enum.GetNames(typeof(KnownColor)); + lstBackColor.DataSource = colorArray; + lstBackColor.DataBind(); + + lstForeColor.DataSource = colorArray; + lstForeColor.DataBind(); + lstForeColor.SelectedIndex = 34; + lstBackColor.SelectedIndex = 163; + + // Get the list of available fonts and add them to the font list. + InstalledFontCollection fonts = new InstalledFontCollection(); + foreach (FontFamily family in fonts.Families) + { + lstFontName.Items.Add(family.Name); + } + + // Set border style options. + string[] borderStyleArray = Enum.GetNames(typeof(BorderStyle)); + lstBorder.DataSource = borderStyleArray; + lstBorder.DataBind(); + + // Select the first border option. + lstBorder.SelectedIndex = 0; + + // Set the picture. + imgDefault.ImageUrl = "defaultpic.png"; + } + } + + private void UpdateCard() + { + // Update the color. + pnlCard.BackColor = Color.FromName(lstBackColor.SelectedItem.Text); + lblGreeting.ForeColor = Color.FromName(lstForeColor.SelectedItem.Text); + + // Update the font. + lblGreeting.Font.Name = lstFontName.SelectedItem.Text; + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = + FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + // Find the appropriate TypeConverter for the BorderStyle enumeration. + TypeConverter cnvrt = TypeDescriptor.GetConverter(typeof(BorderStyle)); + + // Update the border style using the value from the converter. + pnlCard.BorderStyle = (BorderStyle)cnvrt.ConvertFromString( + lstBorder.SelectedItem.Text); + + + // Update the picture. + if (chkPicture.Checked == true) + { + imgDefault.Visible = true; + } + else + { + imgDefault.Visible = false; + } + + // Set the text. + lblGreeting.Text = txtGreeting.Text; + } + + protected void ControlChanged(Object sender, EventArgs e) + { + // Refresh the greeting card (because a control was changed). + UpdateCard(); + } + + protected void cmdUpdate_Click(object sender, EventArgs e) + { + // Refresh the greeting card (because the button was clicked). + UpdateCard(); + } + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/Web.config b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/defaultpic.png b/Beginning ASP.NET 3.5/Chapter06/GreetingCardMaker/defaultpic.png new file mode 100644 index 0000000000000000000000000000000000000000..92668f1e275d5b2009c0ec6a4782237ff7cc4988 GIT binary patch literal 7050 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 StaF<|zkl>g_k;H|2mS}7s>F`~ literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx b/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx new file mode 100644 index 0000000..8982a5c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx @@ -0,0 +1,21 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="BulletedList.aspx.cs" Inherits="BulletedList_aspx" %> + + + + + + Untitled Page + + +
+
+ Bullet styles:
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx.cs new file mode 100644 index 0000000..011ebd2 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/BulletedList.aspx.cs @@ -0,0 +1,32 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class BulletedList_aspx : System.Web.UI.Page +{ + + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + foreach (string style in + Enum.GetNames(typeof(BulletStyle))) + { + BulletedList1.Items.Add(style); + } + } + } + protected void BulletedList1_Click(object sender, BulletedListEventArgs e) + { + string styleName = BulletedList1.Items[e.Index].Text; + BulletStyle style = (BulletStyle)Enum.Parse(typeof(BulletStyle), styleName); + BulletedList1.BulletStyle = style; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx b/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx new file mode 100644 index 0000000..057a309 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx @@ -0,0 +1,21 @@ +<%@ Page language="c#" Inherits="WebControls.CheckBoxTest" CodeFile="CheckListTest.aspx.cs" %> + + + + + + CheckBoxTest + + +
+
+ Choose your favorite programming languages:

+

+ +

+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx.cs new file mode 100644 index 0000000..230c396 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/CheckListTest.aspx.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Web; +using System.Web.SessionState; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +namespace WebControls +{ + + public partial class CheckBoxTest : System.Web.UI.Page + { + + protected void Page_Load(object sender, System.EventArgs e) + { + if (this.IsPostBack == false) + { + chklst.Items.Add("C"); + chklst.Items.Add("C++"); + chklst.Items.Add("C#"); + chklst.Items.Add("Visual Basic 6.0"); + chklst.Items.Add("VB.NET"); + chklst.Items.Add("Pascal"); + } + } + + + protected void cmdOK_Click(object sender, System.EventArgs e) + { + lblResult.Text = "You chose:"; + + foreach (ListItem lstItem in chklst.Items) + { + if (lstItem.Selected == true) + { + // Add text to label. + lblResult.Text += "
" + lstItem.Text; + } + } + + lblResult.Text += "
"; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx b/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx new file mode 100644 index 0000000..aca6710 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx @@ -0,0 +1,31 @@ +<%@ Page language="c#" Inherits="WebControls.EventTracker" CodeFile="EventTracker.aspx.cs" %> + + + + + + Event Tracker + + +
+
+

Controls being monitored for change events:

+ +

+ +

+ + +


+

List of events:

+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx.cs new file mode 100644 index 0000000..bc4ca7a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/EventTracker.aspx.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Web; +using System.Web.SessionState; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +namespace WebControls +{ + public partial class EventTracker : System.Web.UI.Page + { + + protected void Page_Load(object sender, System.EventArgs e) + { + Log("<< Page_Load >>"); + } + + private void Log(string entry) + { + lstEvents.Items.Add(entry); + + // Select the last item to scroll the list so the most recent + // entries are visible. + lstEvents.SelectedIndex = lstEvents.Items.Count - 1; + } + + protected void Page_PreRender(object sender, System.EventArgs e) + { + // When the Page.UnLoad event occurs it is too late + // to change the list. + Log("Page_PreRender"); + } + + protected void CtrlChanged(Object sender, EventArgs e) + { + // Find the control ID of the sender. + // This requires converting the Object type into a Control class. + string ctrlName = ((Control)sender).ID; + Log(ctrlName + " Changed"); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx b/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx new file mode 100644 index 0000000..9a15bc7 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx @@ -0,0 +1,29 @@ +<%@ Page language="c#" Inherits="WebControls.TablePictures" CodeFile="TablePictures.aspx.cs" %> + + + + + + Table Test + + +
+
+ Rows: +   + Cols: + +

+ +

+ +

+ +
+
+ + + diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx.cs b/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx.cs new file mode 100644 index 0000000..3facc28 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/TablePictures.aspx.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Web; +using System.Web.SessionState; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.HtmlControls; + +namespace WebControls +{ + public partial class TablePictures : System.Web.UI.Page + { + + protected void Page_Load(object sender, System.EventArgs e) + { + // Configure the table's appearance. + // This could also be performed in the .aspx file, + // or in the cmdCreate_Click event handler. + tbl.BorderStyle = BorderStyle.Inset; + tbl.BorderWidth = Unit.Pixel(1); + } + + protected void cmdCreate_Click(object sender, System.EventArgs e) + { + // Remove all the current rows and cells. + // This is not necessary if EnableViewState is set to false. + tbl.Controls.Clear(); + + int rows = Int32.Parse(txtRows.Text); + int cols = Int32.Parse(txtCols.Text); + + for (int i = 0; i < rows; i++) + { + // Create a new TableRow object. + TableRow rowNew = new TableRow(); + + // Put the TableRow in the Table. + tbl.Controls.Add(rowNew); + + for (int j = 0; j < cols; j++) + { + // Create a new TableCell object. + TableCell cellNew = new TableCell(); + + // Create a new Label object. + Label lblNew = new Label(); + lblNew.Text = "Example Cell (" + i.ToString() + "," + j.ToString() + ")
"; + + System.Web.UI.WebControls.Image imgNew = new System.Web.UI.WebControls.Image(); + imgNew.ImageUrl = "cellpic.png"; + + // Put the label and picture in the cell. + cellNew.Controls.Add(lblNew); + cellNew.Controls.Add(imgNew); + + if (chkBorder.Checked == true) + { + cellNew.BorderStyle = BorderStyle.Inset; + cellNew.BorderWidth = Unit.Pixel(1); + } + + // Put the TableCell in the TableRow. + rowNew.Controls.Add(cellNew); + } + } + + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/Web.config b/Beginning ASP.NET 3.5/Chapter06/WebControls/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter06/WebControls/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter06/WebControls/cellpic.PNG b/Beginning ASP.NET 3.5/Chapter06/WebControls/cellpic.PNG new file mode 100644 index 0000000000000000000000000000000000000000..70af96af6777505fc947d4083eb4a6372ec7f763 GIT binary patch literal 271 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 + + + + + + Untitled Page + + +
+
+ + + + + + + + + + + + + +
+ Link with Relative Path + Hyperlink.NavigateUrl is set to "Cookieless2.aspx" in code.
+ + The relative path uses
Response.Redirect("Cookieless2.aspx")
+ + The absolute path uses Response.Redirect("http://localhost/.../Cookieless2.aspx)"
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless1.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless1.aspx.cs new file mode 100644 index 0000000..fe2b292 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless1.aspx.cs @@ -0,0 +1,32 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Cookieless1 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + Session["test"] = "Test String"; + + } + protected void cmdLink_Click(object sender, EventArgs e) + { + Response.Redirect("Cookieless2.aspx"); + } + protected void cmdLinkAbsolute_Click(object sender, EventArgs e) + { + // Create a new URL based on the current URL (but ending with + // the page Cookieless2.aspx instead of Cookieless1.aspx. + string url = "http://" + Request.Url.Authority + + Request.Url.Segments[0] + Request.Url.Segments[1] + + "Cookieless2.aspx"; + Response.Redirect(url); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx new file mode 100644 index 0000000..3291b71 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx @@ -0,0 +1,18 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cookieless2.aspx.cs" Inherits="Cookieless2" %> + + + + + + Untitled Page + + +
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx.cs new file mode 100644 index 0000000..0c54a5c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Cookieless2.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Cookieless2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (Session["test"] != null) + { + lblInfo.Text = "Successfully retrieved " + (string)Session["test"]; + } + else + { + lblInfo.Text = "Session information not found."; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Web.config b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Web.config new file mode 100644 index 0000000..e7b7f78 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/CookielessSessions/Web.config @@ -0,0 +1,114 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement.sln b/Beginning ASP.NET 3.5/Chapter07/StateManagement.sln new file mode 100644 index 0000000..2cff901 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "StateManagement", "StateManagement\", "{A87F7496-FDF0-4E6F-832D-2D82D43C6F10}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/StateManagement" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter07\StateManagement\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\StateManagement\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/StateManagement" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter07\StateManagement\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\StateManagement\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "55902" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A87F7496-FDF0-4E6F-832D-2D82D43C6F10}.Debug|.NET.ActiveCfg = Debug|.NET + {A87F7496-FDF0-4E6F-832D-2D82D43C6F10}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement.suo b/Beginning ASP.NET 3.5/Chapter07/StateManagement.suo new file mode 100644 index 0000000000000000000000000000000000000000..a8031782f2861e486be6acb7c206e44e4936d8ca GIT binary patch literal 12288 zcmeI2U2I%O701UZDQyEZX^Mf8rrVH0O6$dro!U;?Q15y}(!}}jI!n7BEeHts)|NMYNRTHs(C9sAhiz&B&75OA@NjrK|BFZJT>9>pL@sqz4z{} z+aywtb?(fanVmBqXZ~}}xqk23ruTn!^?|>eI@)XQFxPL~ZSJfp?;|g^w9%M#Wb}Uh z#*G_Zp)q7XrrT%*K47e$@b_>%srLJm@LllT@CNuE_|x#G;CtcEz-+(S3~z$(gYSnw z3-`m)2l2;r>#xAHDe_k~5tA?l(vmsP4u+?Gvwro=S7Sx99^QKJUzg$=|JZj2l}~@p zYjG5bMRUp=K>7l?ggMvjr!C9+L80nZZrQM|Li#J3HCc1gESp8vD{m#&^|+n+>kR75hLx}N z*ZCIdoC?R?nRTi9b9tSA;egJ+=Be{99MBp{w%Q2`TzjS3-p|8dfFFRr2ycNOglFJ~ z;0Ua?+x&Dp=_Bx$;jh3u;78%F!jHj^!vk;>{u(?8KMhyQ-NpM8e%To5xS!uc`lO%V zOZs&`KS3IU{^retuUtB}Y42oznIU#W(q*yMdfx12ju}qzJSQf_xyqUxdR^d8 z&m220ZC_#s3)Bg9hRN@;zj}_kC3^}>?CdCIIuB`Ea)z`3=lInbSV*PSH0D2X-BLG? zH1}Rezn_LD?b^jx*Dls%?IuhTor{{oXz5JV+Qm)d+Jzm{308RqsYR1#zlxx563Hd= zJUf;l7ew2@pRF`<3LVs5^|Cj_qDf?&G%M_^_O`^i(T-=BQESZge(60UKK=`9G=}QB zR(aVuvR6d)@?(r4%NS0hi$$xoWmc#)?EwFUal*u~@^w#s$M3RUzV1J*yH3I)BPg_$ zF05SF7ojiVd06>sD;BwZ@ZP$As-F@Zw|eZ|pE*j>oYx45x`=*hM^hlEG)uSsGQ7Y% zBOs=3zZF{Nc}r5Z0)}Y*5fD5I9;9d!=c!-n>@SmMNWGi%!BP{ z-pIONhkE_fP8C@DBx}E7*SI|fNdKgFLgBFbr?&m;ctEY?pJ%;=NO`Yeizo7}T*(%- zXjW6K``Q)M%b!9^&mdKH@T|WUMROK?YfjGov%;(TZQj}|mA@n#NTl;F%d=$fw|vz} zah7owohzgJ!UDC_vof09tp7vwBYR6@P@h3mJ^#*5U+p=NrexS3omJiU-IA{gH9zmA ztfr%Ymmr@d;O8~*k)XEC>SaGqv4VMab)-O<7WDi%+c~7&db^a)I zo@dnhCK~k5pZtTc`lq{B{)MQWeCG>ITALv4{h;m{_3=l(Nm%)cQ@DFiI42Eux2<>1 z7TAj%rMkadO`Tx>mGf`oBhuHf@)aZbgRkI6z_?RrfbPorGk(Ha)y?I)QrTaU>&TV2 zOJ%S9&~Fgs?4GUDyCc^6sMb1pd%Beyb<;y9wY|&wZELBUd#uN{mOVz%H)n5tf7OzX za<9kiPRs6$p%3%SxBkoxa$c(c23FtN=c<3B{0qpfta;LG-|)f2V?TRm|JA=;xwiT8 z?7fG~d%yed+)uXsHu3A-f62W3zjJb#@jXj_dS>F$mrosh%Yf4`@QK={;`PczK`DX>$9`>;t_AKtMWWM^PYD4c4af~$-Omu_Fq__lch1VZ|&6%k?imrx;U$gzb3f>q=Sk< z$SMfhfo|r%6WPxH-iIxh;8u{;7B@rKYQww@S^I5>bdvXHSGBTnb+G?CUjJd_JNu`C zO|mdwUsG&S46icc=16*sRhFiow=GLPZV6w7W2$jTRT-()?!`47X%LDg8J9!#8OD@G zJDTCUR`thSjm*VCySa_LZy35`bQ^iLs~4^Rc~@iUCSWu$TOf+sW6rn;?>WeOnTGgLKefI$ktpDoL9b!+T#~Dy^3HBlhjkvvj!#mS%pWIk)j~nOD z7cU2ny)kUqF?6(SOPw#Qd%yS7b8Bnkcc=dGNORm^ z@|JG4wOH%#Dmtc!Zw@{{#{Kci(0jZG^+hKS_tY-~)Ytj0fPqi$?-#m@+p4D}& z^3zmw|Fy8O*G}a(_Rw3&?JU1j>pz_Jso>sg=<3=<<%6uS1h-Z57`TgjH`>U}zA^Wv J3Af*`{|}~mFnj<2 literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx new file mode 100644 index 0000000..befd50c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx @@ -0,0 +1,22 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CookieExample.aspx.cs" Inherits="CookieExample" %> + + + + + + Untitled Page + + +
+
+
+ +
+
+ Name: + + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx.cs new file mode 100644 index 0000000..41f3ff0 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CookieExample.aspx.cs @@ -0,0 +1,46 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CookieExample : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + HttpCookie cookie = Request.Cookies["Preferences"]; + if (cookie == null) + { + lblWelcome.Text = "Unknown Customer"; + } + else + { + lblWelcome.Text = "Cookie Found.

"; + lblWelcome.Text += "Welcome, " + cookie["Name"]; + } + + } + protected void cmdStore_Click(object sender, EventArgs e) + { + // Check for a cookie, and only create a new one if + // one doesn't already exist. + HttpCookie cookie = Request.Cookies["Preferences"]; + if (cookie == null) + { + cookie = new HttpCookie("Preferences"); + } + + cookie["Name"] = txtName.Text; + cookie.Expires = DateTime.Now.AddYears(1); + Response.Cookies.Add(cookie); + + lblWelcome.Text = "Cookie Created.

"; + lblWelcome.Text += "New Customer: " + cookie["Name"]; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx new file mode 100644 index 0000000..e23613f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx @@ -0,0 +1,26 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CrossPage1.aspx.cs" Inherits="CrossPage1" %> + + + + + + CrossPage1 + + + +
+
+ First Name: + +
+ Last Name: + +
+
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx.cs new file mode 100644 index 0000000..e2c4332 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage1.aspx.cs @@ -0,0 +1,31 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CrossPage1 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (Request.QueryString["err"] != null) + Page.Validate(); + } + + + protected void cmdTransfer_Click(object sender, EventArgs e) + { + Server.Transfer("CrossPage2.aspx", true); + } + + public string FullName + { + get { return txtFirstName.Text + " " + txtLastName.Text; } + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx new file mode 100644 index 0000000..130036a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CrossPage2.aspx.cs" Inherits="CrossPage2" %> + + + + + + Untitled Page + + + +
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx.cs new file mode 100644 index 0000000..6039cef --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/CrossPage2.aspx.cs @@ -0,0 +1,30 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CrossPage2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (PreviousPage != null) + { + + lblInfo.Text = "You came from a page titled " + + PreviousPage.Title + "
"; + + CrossPage1 prevPage = PreviousPage as CrossPage1; + if (prevPage != null) + { + lblInfo.Text += "You typed in this: " + prevPage.FullName + + "
"; + } + } + } +} \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx new file mode 100644 index 0000000..e58199e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx @@ -0,0 +1,18 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PreserveMembers.aspx.cs" Inherits="PreserveMembers" %> + + + + + + Untitled Page + + +
+
+ This is a test of the PreserveMembers.aspx page
+
+ +  
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx.cs new file mode 100644 index 0000000..9d20922 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/PreserveMembers.aspx.cs @@ -0,0 +1,41 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class PreserveMembers : System.Web.UI.Page +{ + private string contents; + protected void Page_Load(object sender, EventArgs e) + { + if (this.IsPostBack) + { + // Restore variables. + contents = (string)ViewState["contents"]; + } + } + + protected void Page_PreRender(Object sender, EventArgs e) + { + // Persist variables. + ViewState["contents"] = contents; + } + + protected void cmdSave_Click(object sender, EventArgs e) + { + // Transfer contents of text box to member variable. + contents = txtValue.Text; + txtValue.Text = ""; + } + protected void cmdLoad_Click(object sender, EventArgs e) + { + // Restore contents of member variable to text box. + txtValue.Text = contents; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx new file mode 100644 index 0000000..c748bc5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="QueryStringRecipient.aspx.cs" Inherits="QueryStringRecipient" %> + + + + + + Untitled Page + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx.cs new file mode 100644 index 0000000..25e344c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringRecipient.aspx.cs @@ -0,0 +1,20 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class QueryStringRecipient : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + lblInfo.Text = "Item: " + Request.QueryString["Item"]; + lblInfo.Text += "
Show Full Record: "; + lblInfo.Text += Request.QueryString["Mode"]; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx new file mode 100644 index 0000000..c8a5e82 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="QueryStringSender.aspx.cs" Inherits="QueryStringSender" %> + + + + + + Untitled Page + + +
+
+
+
+
+
+
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx.cs new file mode 100644 index 0000000..bbb3c97 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/QueryStringSender.aspx.cs @@ -0,0 +1,43 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class QueryStringSender : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + // Add sample values. + lstItems.Items.Add("Econo Sofa"); + lstItems.Items.Add("Supreme Leather Drapery"); + lstItems.Items.Add("Threadbare Carpet"); + lstItems.Items.Add("Antique Lamp"); + lstItems.Items.Add("Retro-Finish Jacuzzi"); + } + } + protected void cmdGo_Click(object sender, EventArgs e) + { + if (lstItems.SelectedIndex == -1) + { + lblError.Text = "You must select an item."; + } + else + { + // Forward the user to the information page, + // with the query string data. + string url = "QueryStringRecipient.aspx?"; + url += "Item=" + Server.UrlEncode(lstItems.SelectedItem.Text) + "&"; + url += "Mode=" + chkDetails.Checked.ToString(); + Response.Redirect(url); + } + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx new file mode 100644 index 0000000..df0f3df --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx @@ -0,0 +1,35 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SessionStateExample.aspx.cs" Inherits="SessionStateExample" %> + + + + + + Untitled Page + + +
+
+ + +

+
+ + + + + +
+ + + +
+
+ +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx.cs new file mode 100644 index 0000000..d603487 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SessionStateExample.aspx.cs @@ -0,0 +1,105 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class SessionStateExample : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + // Create Furniture objects. + Furniture piece1 = new Furniture("Econo Sofa", + "Acme Inc.", 74.99M); + Furniture piece2 = new Furniture("Pioneer Table", + "Heritage Unit", 866.75M); + Furniture piece3 = new Furniture("Retro Cabinet", + "Sixties Ltd.", 300.11M); + + // Add objects to session state. + Session["Furniture1"] = piece1; + Session["Furniture2"] = piece2; + Session["Furniture3"] = piece3; + + // Add rows to list control. + lstItems.Items.Add(piece1.Name); + lstItems.Items.Add(piece2.Name); + lstItems.Items.Add(piece3.Name); + } + + // Display some basic information about the session. + // This is useful for testing configuration settings. + lblSession.Text = "Session ID: " + Session.SessionID; + lblSession.Text += "
Number of Objects: "; + lblSession.Text += Session.Count.ToString(); + lblSession.Text += "
Mode: " + Session.Mode.ToString(); + lblSession.Text += "
Is Cookieless: "; + lblSession.Text += Session.IsCookieless.ToString(); + lblSession.Text += "
Is New: "; + lblSession.Text += Session.IsNewSession.ToString(); + lblSession.Text += "
Timeout (minutes): "; + lblSession.Text += Session.Timeout.ToString(); + + } + protected void cmdMoreInfo_Click(object sender, EventArgs e) + { + if (lstItems.SelectedIndex == -1) + { + lblRecord.Text = "No item selected."; + } + else + { + // Construct the right key name based on the index. + string key = "Furniture" + + (lstItems.SelectedIndex + 1).ToString(); + + // Retrieve the Furniture object from session state. + Furniture piece = (Furniture)Session[key]; + + // Display the information for this object. + lblRecord.Text = "Name: " + piece.Name; + lblRecord.Text += "
Manufacturer: "; + lblRecord.Text += piece.Description; + lblRecord.Text += "
Cost: " + piece.Cost.ToString("c"); + } + } + +} +public class Furniture +{ + private string name; + public string Name + { + get { return name; } + set { name = value; } + } + + private string description; + public string Description + { + get { return description; } + set { description = value; } + } + + private decimal cost; + public decimal Cost + { + get { return cost; } + set { cost = value; } + } + + public Furniture(string name, string description, + decimal cost) + { + Name = name; + Description = description; + Cost = cost; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx new file mode 100644 index 0000000..7428059 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SimpleCounter.aspx.cs" Inherits="SimpleCounter" %> + + + + + + Untitled Page + + +
+
+
+
+  
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx.cs b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx.cs new file mode 100644 index 0000000..bebb661 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/SimpleCounter.aspx.cs @@ -0,0 +1,33 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class SimpleCounter : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdIncrement_Click(object sender, EventArgs e) + { + int counter; + if (ViewState["Counter"] == null) + { + counter = 1; + } + else + { + counter = (int)ViewState["Counter"] + 1; + } + + ViewState["Counter"] = counter; + lblCount.Text = "Counter: " + counter.ToString(); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter07/StateManagement/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter07/StateManagement/Web.config b/Beginning ASP.NET 3.5/Chapter07/StateManagement/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter07/StateManagement/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling.sln b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling.sln new file mode 100644 index 0000000..6c1188d --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "ErrorHandling", "ErrorHandling\", "{F5EAAC66-2920-4B3D-8323-F427606BD082}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/ErrorHandling" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter08\ErrorHandling\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\ErrorHandling\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/ErrorHandling" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter08\ErrorHandling\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\ErrorHandling\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "53241" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F5EAAC66-2920-4B3D-8323-F427606BD082}.Debug|.NET.ActiveCfg = Debug|.NET + {F5EAAC66-2920-4B3D-8323-F427606BD082}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling.suo b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling.suo new file mode 100644 index 0000000000000000000000000000000000000000..ac7d69f7460a4435b9b1810246b4e4e4d25b2ef9 GIT binary patch literal 11264 zcmeI2Uu;`f9mh{vHafPkbsd3irI=D+V~ffECRtaS*v`^5T}zWS6|$Jp*m2XicI3EQ zs&&$sganoLhDud!sFRp94K}F~53o1(fZzdjF9-<O_5y!=5JUAy}Cw-4R@`;P52dO->U9YxFDF7qx+{l@f& z+14SOkzHsU8@H;hmCwBBS52E)`d&1XNLgkKZUnBrkzCi~KIDIihZr1HzSdv%Et0)z z-<<8byL^Bv2YrC%DL)Xjf3*wRzn;HH8;$Ee_`+mPX%>6L@D15-LJIH+uJ_L`#`o?j} ze||hr{{-bD@FaZHujiBh3A%pj@(+Lf=37Uu{%mFE!DMHd>9s`CWwF*gV@6Ec%wfeD zEGCUzWlavfF7T&ojvbe_FR_CK-pT9qQ68{go#EY*wZalRJ4BrX=TlAJa%J zvbLwWt{_9}{tPQUN2wX@#sA2*g#ly`&D!g|@P=5FM8;`z9^J@Uxijo^8OdjOYUca& zea!d&@;6cC3+HIOqI&sb%stB(7SY9`)wXizI37g4{Hc6oRQZY*--ku@@)iHI?%K@- zMoZb%JtR8#uGe^y=ImaH2Gnc&G(KH@ZnkBnlhUcvp zI7!_yS};qi7#dinoU!wdnPD`(8*gxuzU5s?yiL=(L|J~|h5v$7>13Xn%v+gGwtN0K z$KZ{u{dK6(mw){Uth{a37a zJ=V)Vik6;3s&Md(zZOOFY(py){?ojLiK5P5`O~yN0NJ~cXNgsp_E#;%A>%AMS4Q{c z3)E8As%ISWkHVsLcptF;4Z${b^stt#HPOTH@9e7>2wnvR-0$QMKJ%ZHQ1 zzP$aV?YQ!_wJX~!tWoXI(Z4EUSc*-mysh$V^W}~X@1^jn^5j4MqW_)`R{v4aG4Jih zSLM$~S;0KJx?nxuEV>~7w^YfEjCst)7@^pH+CPVu41fVf`AdMj22B?jco^=c)DO1p zBd&CTq57!nqcl!!FPM0c7K6M`T7=bWo~Kk~56`3Xo@NDg{y6Wv%&2iB>h|N$9>x__ z{}g-WGelwXT`rWwGRp8q6!-OC>mF797ijC^p8T9N*hO2<&gR*R9JPvH?#)KhmB+Lm ze>>^wcfNuj!^fRP0~9OkZTzIoXf~GXYK6bP!h?KD)cI?#Ui3SNW4q7R>D@7lK7v}O zY)?^ny>5EmNo{x7ylpFW^HH0zZDo&f^v&VTixngtC$5j#ofhsKLmx8Cx8CNuv6f25B>WKresrLC}<$epvg^H=SQ ze2~r{gbJE@0L|aoepLBiL$1re!`44s^X>4lmDc_5K0dwbeQv_!_xf$ZZj$ftRMh!@ zlMa97cRCJ+O=0W(ToYJ)7kE{cKTfHKza-C3SG@9i?I8bYdHsc<9sUcOe_zdboUV_&e_h7z zti%`W-(0S<9&>8;&!GYRWGo4g@R+Y39-c~}AIfwRR#S%2nf+uq%6SISB;`5#$%v9X zC%6yPp{}abDKj*G?>npS?3w)eE19=`y61!8*6>&BF`&AJZp|j~I62m0iH4@Kl?$mGSg^t)Xx@_y|V;?ilFm*pF?cq#L=JHPOJsE35o zc#=j~&e?8zTG#IQ75{4S<7Tk;N9ns>J#lzcUSeaf&kLV6i+^RmuCI3P(p2%G-~0so?)zEyxd^znmi8=fT&C^ov~e zE3Ajb8lU+}t|NE;qI@Rm{FAi(p6g%>?#{RxP literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx new file mode 100644 index 0000000..fce4c9f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ErrorHandlingTest.aspx.cs" Inherits="ErrorHandlingTest" %> + + + + + + Untitled Page + + + +
+
+ + 5
+ + 0
+
+
+
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx.cs new file mode 100644 index 0000000..ace0137 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorHandlingTest.aspx.cs @@ -0,0 +1,38 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; + +public partial class ErrorHandlingTest : System.Web.UI.Page +{ + + protected void cmdCompute_Click(object sender, EventArgs e) + { + try + { + decimal a, b, result; + a = Decimal.Parse(txtA.Text); + b = Decimal.Parse(txtB.Text); + result = a / b; + lblResult.Text = result.ToString(); + lblResult.ForeColor = Color.Black; + } + catch (Exception err) + { + lblResult.Text = "Message: " + err.Message; + lblResult.Text += "

"; + lblResult.Text += "Source: " + err.Source; + lblResult.Text += "

"; + lblResult.Text += "Stack Trace: " + err.StackTrace; + lblResult.ForeColor = Color.Red; + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx new file mode 100644 index 0000000..97fcded --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ErrorTestCustomLog.aspx.cs" Inherits="ErrorTestCustomLog" %> + + + + + + Untitled Page + + + +
+
+ + 5
+ + 0
+
+
+
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx.cs new file mode 100644 index 0000000..3666913 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestCustomLog.aspx.cs @@ -0,0 +1,55 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Diagnostics; +using System.Drawing; + +public partial class ErrorTestCustomLog : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdCompute_Click(object sender, EventArgs e) + { + try + { + decimal a, b, result; + a = Decimal.Parse(txtA.Text); + b = Decimal.Parse(txtB.Text); + result = a / b; + lblResult.Text = result.ToString(); + lblResult.ForeColor = Color.Black; + } + catch (Exception err) + { + lblResult.Text = "Message: " + err.Message + "

"; + lblResult.Text += "Source: " + err.Source + "

"; + lblResult.Text += "Stack Trace: " + err.StackTrace; + lblResult.ForeColor = Color.Red; + + // Write the information to the event log. + // Register the event source if needed. + if (!EventLog.SourceExists("DivideByZeroApp")) + { + // This registers the event source and creates the custom log, + // if needed. + EventLog.CreateEventSource("DivideByZeroApp", "ProseTech"); + } + + // Open the log. If the log doesn't exist, + // it will be created automatically. + EventLog log = new EventLog("ProseTech"); + log.Source = "DivideByZeroApp"; + log.WriteEntry(err.Message, EventLogEntryType.Error); + + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx new file mode 100644 index 0000000..e0b32d5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ErrorTestLog.aspx.cs" Inherits="ErrorTestLog" %> + + + + + + Untitled Page + + + +
+
+ + 5
+ + 0
+
+
+
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx.cs new file mode 100644 index 0000000..c3ad0e4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/ErrorTestLog.aspx.cs @@ -0,0 +1,46 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; +using System.Diagnostics; + +public partial class ErrorTestLog : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdCompute_Click(object sender, EventArgs e) + { + try + { + decimal a, b, result; + a = Decimal.Parse(txtA.Text); + b = Decimal.Parse(txtB.Text); + result = a / b; + lblResult.Text = result.ToString(); + lblResult.ForeColor = Color.Black; + } + catch (Exception err) + { + lblResult.Text = "Message: " + err.Message + "

"; + lblResult.Text += "Source: " + err.Source + "

"; + lblResult.Text += "Stack Trace: " + err.StackTrace; + lblResult.ForeColor = Color.Red; + + // Write the information to the event log. + EventLog log = new EventLog(); + log.Source = "DivisionPage"; + log.WriteEntry(err.Message, EventLogEntryType.Error); + } + + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx new file mode 100644 index 0000000..16804f5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx @@ -0,0 +1,31 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EventReviewPage.aspx.cs" Inherits="EventReviewPage" %> + + + + + + Untitled Page + + + +
+
+ +  ProseTech  +
+ +      + DivideByZeroApp
+
+
+
+
+ + + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx.cs new file mode 100644 index 0000000..e217b41 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/EventReviewPage.aspx.cs @@ -0,0 +1,67 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Diagnostics; + +public partial class EventReviewPage : System.Web.UI.Page +{ + protected void chkAll_CheckedChanged(object sender, EventArgs e) + { + // The chkAll control has AutoPostback = true. + if (chkAll.Checked) + { + txtSource.Text = ""; + txtSource.Enabled = false; + } + else + { + txtSource.Enabled = true; + } + + } + protected void cmdGet_Click(object sender, EventArgs e) + { + lblResult.Text = ""; + + // Check if the log exists. + if (!EventLog.Exists(txtLog.Text)) + { + lblResult.Text = "The event log " + txtLog.Text; + lblResult.Text += " doesn't exist."; + } + else + { + // For maximum performance, join all the event + // information into one large string using the + // StringBuilder. + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + + EventLog log = new EventLog(txtLog.Text); + foreach (EventLogEntry entry in log.Entries) + { + // Write the event entries to the StringBuilder. + if (chkAll.Checked || + entry.Source == txtSource.Text) + { + sb.Append("Entry Type: "); + sb.Append(entry.EntryType.ToString()); + sb.Append("
Message: "); + sb.Append(entry.Message); + sb.Append("
Time Generated: "); + sb.Append(entry.TimeGenerated); + sb.Append("

"); + } + } + // Copy the complete text to the web page. + lblResult.Text = sb.ToString(); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx new file mode 100644 index 0000000..a39edd0 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SimpleTrace.aspx.cs" Inherits="SimpleTrace" %> + + + + + + Untitled Page + + +
+
+ A Simple Tracing Example
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx.cs new file mode 100644 index 0000000..3825ae5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/SimpleTrace.aspx.cs @@ -0,0 +1,22 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class SimpleTrace : System.Web.UI.Page +{ + + protected void cmdTrace_Click(object sender, EventArgs e) + { + Page.Trace.IsEnabled = true; + + Session["TestString"] = "This is just a string."; + Session["MyDataSet"] = new DataSet(); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx new file mode 100644 index 0000000..af38962 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx @@ -0,0 +1,20 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TraceExample.aspx.cs" Inherits="TraceExample" Trace="true" %> + + + + + + Untitled Page + + +
+
+ + + + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx.cs b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx.cs new file mode 100644 index 0000000..5369374 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/TraceExample.aspx.cs @@ -0,0 +1,46 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class TraceExample : System.Web.UI.Page +{ + + protected void cmdError_Click(object sender, EventArgs e) + { + try + { + DivideNumbers(5, 0); + } + catch (Exception err) + { + Trace.Warn("cmdError_Click", "Caught Error", err); + } + + } + protected void cmdWrite_Click(object sender, EventArgs e) + { + Trace.Write("About to place an item in session state."); + Session["Test"] = "Contents"; + Trace.Write("Placed item in session state."); + + } + protected void cmdWriteCategory_Click(object sender, EventArgs e) + { + Trace.Write("Page_Load", "About to place an item in session state."); + Session["Test"] = "Contents"; + Trace.Write("Page_Load", "Placed item in session state."); + } + + private decimal DivideNumbers(decimal number, decimal divisor) + { + return number / divisor; + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/Web.config b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter08/ErrorHandling/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation.sln b/Beginning ASP.NET 3.5/Chapter10/Validation.sln new file mode 100644 index 0000000..b6821cc --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Validation", "Validation\", "{DB82A7E0-C0C0-48A9-B24F-7281CD73E752}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/Validation" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter10\Validation\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\Validation\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/Validation" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter10\Validation\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\Validation\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "58348" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DB82A7E0-C0C0-48A9-B24F-7281CD73E752}.Debug|.NET.ActiveCfg = Debug|.NET + {DB82A7E0-C0C0-48A9-B24F-7281CD73E752}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation.suo b/Beginning ASP.NET 3.5/Chapter10/Validation.suo new file mode 100644 index 0000000000000000000000000000000000000000..87f172200de2736486661f72483a692363b1b1ec GIT binary patch literal 8704 zcmeHM&2Lmy6h8$)5ET%tiil&a2*Qlh4@z4;!h94_K3dz-b}^AmXQso@VP-O&mJ%UR z6B9KtafOYEMiWg8DhWGvCkvyivN0yE^e<3Xu4w)J?tORqI(_r{rfo_{IFs|V`%86@K(FNSD~V6KB!_oVE@NlC zL%pmk+dTb&8yx%Qd@;1;m%6p+bc~7w=mEvNT##2meFUX0nbZv)pY`xUcD6hY6Syx0 zgOZYA8IufnPsv%7Qdp5*RY8?YXiK5q8TQK>#ShuxI-GmWucgnNu&Vkcj=4wW6sU}0 z4Q2(Vz8YOKVUb{{}K=?7^4lp$%e-!|)Q#yo-V zCxK4^cL1LT?gTyq3;>@6HUpmna?JC1Hv(I%Z!^zce7|I?^IPSY@eTr;Y;CPp8PnYd zj}o{!bnV^uzq@hrlg}o%9*x$QAi|n}x=iH0C8bkhl7JN_VKFh-RZ7y(>l}W3rp2eU zy#Ni!p^aXr1?2;3)OoZOlob}St3lLFpeBovNxW%=d5nrxtnQx(qtx94^1dA4_+DUC z$u3fsUD!c(A?br>3dk9F$$p#cBC=3+Ue`1LuhS2zc}RK~&q>gr2b_Ss6DTbP4e&qo z1xDQ#>(6%P8$?1BG=^myx{+3N2i0CDz)^Ldt4HdmZwdaNdCqogl1lnv@SegNMxl#& z$bd1?%?IyU0)6IKZ&abr_(!?Z612vc*f2w09pgu!M3_@$ZukXgs~a z0OqE5DWWxo-bIw@4c=M>s`Niua5AE38rtUjZmvPEZ0T~S)PL?&4zlmV-i#|5yZZp> zU!Adiulh$_t+$fJ>hv!|-th4g-kEt8A$4m1oTZq|I0c<6LH8N`*mJ%|>I8k}Sj@M)(zo+p zoAu4N18PbFYo@I--Y*rL&JD|{t7RSb`;A)0nZC;%&;0o`B$&nCW|ZfPLl@}(3gxqr z$PwJe5Dp1*+&2+5!_toYIV1;>3k1av{Rk@bqenaHJ5U!!k5*`uAHAAU+k_rblv^<7 zAhNDzxr*;R_HZ0JuQkiA^F3(OC!^|-C}_n$-Vu1!KgM33F9>e*%~>c4%P0YzAYl0) z-cNX?|2X=ZxJN%n4K~qM+t~>AB8^(cFVo^gT?F>8=#nAsL#J(Gli>$0} z9+JZ=JYxX*X7bG|x^VLA-#>r5 zcjo)+tmUq>k8Hm+b8FYBFF#G*_;}af9kq>*fLq=`jHw(f1zo7rLQSXI6Za3wmT1#n z_0JxEOq63BEMP5+yo`og+ZgZMf%hN0hoDV)rSC&ubN_M{F^p8>DuyM?K3D6td+v>C z1ol_6{oDCJ0Z)@uv~%D&i`5)g9*GgPST*Y)Wev1{@@>G>yS?r7U-t=gezi{Sb=I=x z?g<#zuD~i;L(S8f#Bxu+1K7`nHwXHzFJNi7_VM~(jHxB9pc$6j2!FxT^C%)Hz2hkM zjOQ6zdXqZ2@PD++!XLOHmx4x#W0fpVx(ki7lN8R*xfA0i+PQ^35 zSNboY?;dMfbI)q-U;AJU^g$(+6}g}NIR*V+t^6}in)CN@=mj&lRy-rveLu1@Y7Vou zCj6rKK3Dci3#Ehnzh?R`g1*Ur-1fhj3@!q=f2m_WWn{2OchyYUe`IxRk~Z)j2B$$h zP1Z{5G5iNtod12GZTL6wNBetb2h4cWum)P=;=ubS-g9pQdeuL>{~dzg$YOuv(6>=M zc?+iVuj)CseN{`bzx|kC(3)hmeQyHR#eaGzW0BDhlINI>)}lSu!mStm-~5`|zUVuM zN1~mvNIsd0g;VKFE|Lcw z^0|==S&{XJbK}|UQ5I_ebJkm!bL*2{2-cx(qXqASu!?qANgMovKI!pP=Z6nzM;mRX z4W5G~dXWya(SxuwKkKYcmC+~!UF4}}0=gK%UXeZK_iS^@pAXf*?@D*&&7jl$w^OX- V9pb{g;1$^Uaw6zTbF{ki{STsZguMU& literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx b/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx new file mode 100644 index 0000000..cbc172b --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx @@ -0,0 +1,134 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomerForm.aspx.cs" Inherits="CustomerForm" %> + + + + + + Customer Form + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ User Name: + + +
+ + Password: + +
+ + Password (retype): + +
+ + E-mail: + +
+ + Age: + +
+ + Referrer Code: + +
+
+ +   + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx.cs new file mode 100644 index 0000000..88cda17 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/CustomerForm.aspx.cs @@ -0,0 +1,47 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CustomerForm : System.Web.UI.Page +{ + protected void cmdSubmit_Click(object sender, EventArgs e) + { + if (Page.IsValid) + { + lblMessage.Text = "This is a valid form."; + } + } + protected void cmdCancel_Click(object sender, EventArgs e) + { + lblMessage.Text = "No attempt was made to validate this form."; + } + protected void vldCode_ServerValidate(object source, ServerValidateEventArgs e) + { + try + { + // Check if the first three digits are divisible by seven. + int val = Int32.Parse(e.Value.Substring(0, 3)); + if (val % 7 == 0) + { + e.IsValid = true; + } + else + { + e.IsValid = false; + } + } + catch + { + // An error occured in the conversion. + // The value is not valid. + e.IsValid = false; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ErrorIcon.jpg b/Beginning ASP.NET 3.5/Chapter10/Validation/ErrorIcon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4da2c22e7aec9795564a88e4add87187145253d GIT binary patch literal 605 zcmex=5}@5r#7|F)$0V z2q`)m1}6T$#lXYN2y_awAcH-_%X00Oli%4NI!s79-22U5agVr6L4%iohoSEp6pb@S6OoIj}14X`XIeIP1!s1$Shl+kz7r);qdd-zu6^-emmvsAtyKT@y?1 zOx)6weBk-Ud+s~lmagRfmY-8@a(C_8Q@r2ioOC|(>FMo4buPc!@&^x65`JA;@ + + + + + + Manual Validation + + +
+
+ A number (1 to 10): +   +
+
+         Not validated:  +
+
+
+
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ManualValidation.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/ManualValidation.aspx.cs new file mode 100644 index 0000000..93da504 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ManualValidation.aspx.cs @@ -0,0 +1,39 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ManualValidation : System.Web.UI.Page +{ + + protected void cmdOK_Click(object sender, EventArgs e) + { + string errorMessage = "Mistakes found:
"; + + bool pageIsValid = true; + // Search through the validation controls. + foreach (BaseValidator ctrl in this.Validators) + { + if (!ctrl.IsValid) + { + pageIsValid = false; + errorMessage += ctrl.ErrorMessage + "
"; + + // Find the corresponding input control, and change the + // generic Control variable into a TextBox variable. + // This allows access to the Text property. + TextBox ctrlInput = (TextBox)this.FindControl(ctrl.ControlToValidate); + errorMessage += " * Problem is with this input: "; + errorMessage += ctrlInput.Text + "
"; + } + } + if (!pageIsValid) lblMessage.Text = errorMessage; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx b/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx new file mode 100644 index 0000000..b73e0db --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RegularExpressionTest.aspx.cs" Inherits="RegularExpressionTest" %> + + + + + + Regular Expression Test + + +
+
+ + + + Current Expression: (none) + New Expression: + +
+ + + + + Test Current Expression: +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx.cs new file mode 100644 index 0000000..b4fe7a1 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/RegularExpressionTest.aspx.cs @@ -0,0 +1,22 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class RegularExpressionTest : System.Web.UI.Page +{ + + protected void cmdSetExpression_Click(object sender, EventArgs e) + { + TestValidator.ValidationExpression = txtExpression.Text; + lblExpression.Text = "Current Expression: "; + lblExpression.Text += txtExpression.Text; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter10/Validation/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx new file mode 100644 index 0000000..fb082be --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx @@ -0,0 +1,40 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidationGroups.aspx.cs" Inherits="ValidationGroups" %> + + + + + + Untitled Page + + +
+
+ + + +
+
+
+ +  
+ + +
+
+
+

+
+
+ Fill in one text box. You can now use the button in underneath to post back the page. + However, if you click the other button (the one next to the empty text box), + validation will fail for that group, and you won't be able to post back the page. + + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx.cs new file mode 100644 index 0000000..c968b04 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationGroups.aspx.cs @@ -0,0 +1,27 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ValidationGroups : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void Button_Click(object sender, EventArgs e) + { + if (Page.IsValid) + { + lblInfo.Text = "Page posted back at " + DateTime.Now.ToLongTimeString(); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx new file mode 100644 index 0000000..1983df4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx @@ -0,0 +1,32 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidationSummary.aspx.cs" Inherits="ValidationSummary" %> + + + + + + Validation Summary + + +
+
+

A number (1 to 10): +   + +
+
+         Not validated:  +
+

+


+
+
+
+
+

+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx.cs new file mode 100644 index 0000000..09aa745 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationSummary.aspx.cs @@ -0,0 +1,24 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ValidationSummary : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdOK_Click(object sender, EventArgs e) + { + // Abort the event if the page isn’t valid. + if (!Page.IsValid) return; + lblMessage.Text = "cmdOK_Click event handler executed."; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx new file mode 100644 index 0000000..2a2431c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx @@ -0,0 +1,33 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ValidationTest.aspx.cs" Inherits="ValidationTest" %> + + + + + + Validation Test + + +
+
+

+ A number (1 to 10): +        +  
+
+         Not validated:  +
+

+


+
+
+   +

+

+ Client script is disabled on this page so you can see how validation performs on + down-level browsers. Even though they trigger a postback, your code should detect + that the page is invalid. To switch back to the default behavior, set RangeValidation.EnableClientScript + to true.

+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx.cs new file mode 100644 index 0000000..9453363 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/ValidationTest.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ValidationTest : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdOK_Click(object sender, EventArgs e) + { + // Abort the event if the page isn't valid. + if (!Page.IsValid) return; + lblMessage.Text = "cmdOK_Click event handler executed."; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter10/Validation/Web.config b/Beginning ASP.NET 3.5/Chapter10/Validation/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter10/Validation/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls.sln b/Beginning ASP.NET 3.5/Chapter11/RichControls.sln new file mode 100644 index 0000000..658560f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "RichControls", "RichControls\", "{D1F42A98-F788-4319-B1A3-B3EF8E8FB4CF}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/RichControls" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter11\RichControls\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\RichControls\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/RichControls" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter11\RichControls\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\RichControls\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "57836" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D1F42A98-F788-4319-B1A3-B3EF8E8FB4CF}.Debug|.NET.ActiveCfg = Debug|.NET + {D1F42A98-F788-4319-B1A3-B3EF8E8FB4CF}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls.suo b/Beginning ASP.NET 3.5/Chapter11/RichControls.suo new file mode 100644 index 0000000000000000000000000000000000000000..93cd3ed3fe5626d4c5dcdeed5e3e93b85168571b GIT binary patch literal 12288 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 E2l{eGZvX%Q literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx b/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx new file mode 100644 index 0000000..c1ea81e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx @@ -0,0 +1,20 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AdRotatorTest.aspx.cs" Inherits="AdRotatorTest" %> + + + + + + Untitled Page + + +
+
+ +
+
+
+ HyperLink
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx.cs new file mode 100644 index 0000000..aa62113 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/AdRotatorTest.aspx.cs @@ -0,0 +1,28 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class AdRotatorTest : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void Ads_AdCreated(object sender, AdCreatedEventArgs e) + { + // Synchronize the Hyperlink control. + lnkBanner.NavigateUrl = e.NavigateUrl; + + // Syncrhonize the text of the link. + lnkBanner.Text = "Click here for information about our sponsor: "; + lnkBanner.Text += e.AlternateText; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx b/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx new file mode 100644 index 0000000..b45821a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Appointment.aspx.cs" Inherits="Appointment" %> + + + + + + Untitled Page + + + +
+
+ + + + + +
+ Choose day:
+ + +
+ Choose time:
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx.cs b/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx.cs new file mode 100644 index 0000000..0f0a5bd --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/Appointment.aspx.cs @@ -0,0 +1,57 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Appointment : System.Web.UI.Page +{ + + protected void MyCalendar_SelectionChanged(object sender, EventArgs e) + { + lstTimes.Items.Clear(); + + switch (MyCalendar.SelectedDate.DayOfWeek) + { + case DayOfWeek.Monday: + // Apply special Monday schedule. + lstTimes.Items.Add("10:00"); + lstTimes.Items.Add("10:30"); + lstTimes.Items.Add("11:00"); + break; + default: + lstTimes.Items.Add("10:00"); + lstTimes.Items.Add("10:30"); + lstTimes.Items.Add("11:00"); + lstTimes.Items.Add("11:30"); + lstTimes.Items.Add("12:00"); + lstTimes.Items.Add("12:30"); + break; + } + + } + protected void MyCalendar_DayRender(object sender, DayRenderEventArgs e) + { + // Check for May 5 in any year, and format it. + if (e.Day.Date.Day == 5 && e.Day.Date.Month == 5) + { + e.Cell.BackColor = System.Drawing.Color.Yellow; + + // Add some static text to the cell. + Label lbl = new Label(); + lbl.Text = "
My Birthday!"; + e.Cell.Controls.Add(lbl); + } + // Restrict dates after the year 2010, and those on the weekend. + if (e.Day.Date.Year > 2006) + { + e.Day.IsSelectable = false; + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx b/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx new file mode 100644 index 0000000..430c1f4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx @@ -0,0 +1,26 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CalendarTest.aspx.cs" Inherits="CalendarTest" %> + + + + + + Untitled Page + + +
+
+ + + + + + + + +
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx.cs b/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx.cs new file mode 100644 index 0000000..f0f6a06 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/CalendarTest.aspx.cs @@ -0,0 +1,39 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CalendarTest : System.Web.UI.Page +{ + protected void MyCalendar_SelectionChanged(object sender, EventArgs e) + { + lblDates.Text = "You selected these dates:
"; + + foreach (DateTime dt in MyCalendar.SelectedDates) + { + lblDates.Text += dt.ToLongDateString() + "
"; + } + + } + protected void MyCalendar_DayRender(object sender, DayRenderEventArgs e) + { + // Check for May 5 in any year, and format it. + if (e.Day.Date.Day == 5 && e.Day.Date.Month == 5) + { + e.Cell.BackColor = System.Drawing.Color.Yellow; + + // Add some static text to the cell. + Label lbl = new Label(); + lbl.Text = "
My Birthday!"; + e.Cell.Controls.Add(lbl); + } + + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/MainAds.xml b/Beginning ASP.NET 3.5/Chapter11/RichControls/MainAds.xml new file mode 100644 index 0000000..b8a89b2 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/MainAds.xml @@ -0,0 +1,12 @@ + + + + + msasp.gif + http://www.microsoft.com + Microsoft + 1 + + + + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx b/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx new file mode 100644 index 0000000..a101e28 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx @@ -0,0 +1,83 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MultiViewGreetingCardMaker.aspx.cs" Inherits="MultiViewGreetingCardMaker" %> + + + + + + Untitled Page + + + +
+
+ + + + + +
+ + + Choose a foreground (text) color:
+ +
+
+ Choose a background color:
+ + + +
+ + + +
+ + + Choose a border style:
+ +
+
+ + +
+ + + +
+ + Choose a font name:
+ +
+
+ Specify a font size:
+
+
+ Enter the greeting text below:
+ + +
+ + + +
+
+
+ +
+   + + +
+
+
+ +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx.cs b/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx.cs new file mode 100644 index 0000000..a63db2a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/MultiViewGreetingCardMaker.aspx.cs @@ -0,0 +1,111 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; +using System.ComponentModel; + +public partial class MultiViewGreetingCardMaker : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + // Get the list of colors. + string[] colorArray = Enum.GetNames(typeof(System.Drawing.KnownColor)); + lstBackColor.DataSource = colorArray; + lstBackColor.DataBind(); + + lstForeColor.DataSource = colorArray; + lstForeColor.DataBind(); + lstForeColor.SelectedIndex = 34; + lstBackColor.SelectedIndex = 163; + + // Get the list of available fonts and add them to the font list. + System.Drawing.Text.InstalledFontCollection fonts; + fonts = new System.Drawing.Text.InstalledFontCollection(); + foreach (FontFamily family in fonts.Families) + { + lstFontName.Items.Add(family.Name); + } + + // Set border style options. + string[] borderStyleArray = Enum.GetNames(typeof(BorderStyle)); + lstBorder.DataSource = borderStyleArray; + lstBorder.DataBind(); + + // Select the first border option. + lstBorder.SelectedIndex = 0; + + // Set the picture. + imgDefault.ImageUrl = "defaultpic.png"; + } + } + + private void Update() + { + // Update the color. + pnlCard.BackColor = Color.FromName(lstBackColor.SelectedItem.Text); + lblGreeting.ForeColor = Color.FromName(lstForeColor.SelectedItem.Text); + + // Update the font. + lblGreeting.Font.Name = lstFontName.SelectedItem.Text; + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = + FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + // Find the appropriate TypeConverter for the BorderStyle enumeration. + TypeConverter cnvrt = TypeDescriptor.GetConverter(typeof(BorderStyle)); + + // Update the border style using the value from the converter. + pnlCard.BorderStyle = (BorderStyle)cnvrt.ConvertFromString( + lstBorder.SelectedItem.Text); + + + // Update the picture. + if (chkPicture.Checked == true) + { + imgDefault.Visible = true; + } + else + { + imgDefault.Visible = false; + } + + // Set the text. + lblGreeting.Text = txtGreeting.Text; + } + + protected void ControlChanged(Object sender, EventArgs e) + { + // Refresh the greeting card. + Update(); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter11/RichControls/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/Web.config b/Beginning ASP.NET 3.5/Chapter11/RichControls/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx b/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx new file mode 100644 index 0000000..34fd60f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx @@ -0,0 +1,66 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WizardGreetingCardMaker.aspx.cs" Inherits="WizardGreetingCardMaker" %> + + + + + + Greeting Card Wizard + + + +
+
+ + + + + Choose a foreground (text) color:
+ +
+
+ Choose a background color:
+ + + +
+ + + Choose a border style:
+ +
+
+ + +
+ + + + Choose a font name:
+ +
+
+ Specify a font size:
+
+
+ Enter the greeting text below:
+ + +
+ + +
+   + +
+
+
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx.cs b/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx.cs new file mode 100644 index 0000000..b945f01 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter11/RichControls/WizardGreetingCardMaker.aspx.cs @@ -0,0 +1,109 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; +using System.ComponentModel; + +public partial class WizardGreetingCardMaker : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + // Get the list of colors. + string[] colorArray = Enum.GetNames(typeof(System.Drawing.KnownColor)); + lstBackColor.DataSource = colorArray; + lstBackColor.DataBind(); + + lstForeColor.DataSource = colorArray; + lstForeColor.DataBind(); + lstForeColor.SelectedIndex = 34; + lstBackColor.SelectedIndex = 163; + + // Get the list of available fonts and add them to the font list. + System.Drawing.Text.InstalledFontCollection fonts; + fonts = new System.Drawing.Text.InstalledFontCollection(); + foreach (FontFamily family in fonts.Families) + { + lstFontName.Items.Add(family.Name); + } + + // Set border style options. + string[] borderStyleArray = Enum.GetNames(typeof(BorderStyle)); + lstBorder.DataSource = borderStyleArray; + lstBorder.DataBind(); + + // Select the first border option. + lstBorder.SelectedIndex = 0; + + // Set the picture. + imgDefault.ImageUrl = "defaultpic.png"; + } + } + protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e) + { + Update(); + } + + private void Update() + { + // Update the color. + pnlCard.BackColor = Color.FromName(lstBackColor.SelectedItem.Text); + lblGreeting.ForeColor = Color.FromName(lstForeColor.SelectedItem.Text); + + // Update the font. + lblGreeting.Font.Name = lstFontName.SelectedItem.Text; + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + try + { + if (Int32.Parse(txtFontSize.Text) > 0) + { + lblGreeting.Font.Size = + FontUnit.Point(Int32.Parse(txtFontSize.Text)); + } + } + catch + { + // Ignore invalid value. + } + + // Find the appropriate TypeConverter for the BorderStyle enumeration. + TypeConverter cnvrt = TypeDescriptor.GetConverter(typeof(BorderStyle)); + + // Update the border style using the value from the converter. + pnlCard.BorderStyle = (BorderStyle)cnvrt.ConvertFromString( + lstBorder.SelectedItem.Text); + + + // Update the picture. + if (chkPicture.Checked == true) + { + imgDefault.Visible = true; + } + else + { + imgDefault.Visible = false; + } + + // Set the text. + lblGreeting.Text = txtGreeting.Text; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter11/RichControls/defaultpic.png b/Beginning ASP.NET 3.5/Chapter11/RichControls/defaultpic.png new file mode 100644 index 0000000000000000000000000000000000000000..92668f1e275d5b2009c0ec6a4782237ff7cc4988 GIT binary patch literal 7050 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 AzyJUM literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing.sln b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing.sln new file mode 100644 index 0000000..1475c09 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "CustomDrawing", "CustomDrawing\", "{1CC050BE-DA17-4A24-8170-8C914FDAA56D}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/CustomDrawing" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter12\CustomDrawing\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\CustomDrawing\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/CustomDrawing" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter12\CustomDrawing\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\CustomDrawing\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "57547" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1CC050BE-DA17-4A24-8170-8C914FDAA56D}.Debug|.NET.ActiveCfg = Debug|.NET + {1CC050BE-DA17-4A24-8170-8C914FDAA56D}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing.suo b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing.suo new file mode 100644 index 0000000000000000000000000000000000000000..f6a7ff6fb8ceb7ffcb121a09eed072585ddb52d2 GIT binary patch literal 11776 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 + + + + + + Untitled Page + + +
+
+ Here is some content. +

+ +

+ Here is some more content. +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/ContentAndGraphics.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/ContentAndGraphics.aspx.cs new file mode 100644 index 0000000..a1b72e0 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/ContentAndGraphics.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ContentAndGraphics : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx new file mode 100644 index 0000000..99c7e9c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GraphicalText.aspx.cs" Inherits="GraphicalText" %> + + + + + + Untitled Page + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx.cs new file mode 100644 index 0000000..b69b7ae --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText.aspx.cs @@ -0,0 +1,45 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; + +public partial class GraphicalText : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + // Create an in-memory bitmap where you will draw the image. + // The Bitmap is 300 pixels wide and 50 pixels high. + Bitmap image = new Bitmap(300, 50); + + // Get the graphics context for the bitmap. + Graphics g = Graphics.FromImage(image); + + // Draw a solid yellow rectangle with a red border. + g.FillRectangle(Brushes.LightYellow, 0, 0, 300, 50); + g.DrawRectangle(Pens.Red, 0, 0, 299, 49); + + // Draw some text using a fancy font. + Font font = new Font("Alba Super", 20, FontStyle.Regular); + g.DrawString("This is a test.", font, Brushes.Blue, 10, 0); + + // Copy a smaller gif into the image from a file. + System.Drawing.Image icon = System.Drawing.Image.FromFile(Server.MapPath("smiley.gif")); + g.DrawImageUnscaled(icon, 240, 0); + + // Render the entire bitmap to the HTML output stream. + image.Save(Response.OutputStream, + System.Drawing.Imaging.ImageFormat.Gif); + + // Clean up. + g.Dispose(); + image.Dispose(); + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx new file mode 100644 index 0000000..9d494b9 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GraphicalText2.aspx.cs" Inherits="GraphicalText2" %> + + + + + + Untitled Page + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx.cs new file mode 100644 index 0000000..0776482 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/GraphicalText2.aspx.cs @@ -0,0 +1,49 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Drawing; + +public partial class GraphicalText2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + // Get the user name. + if (Request.QueryString["Name"] == null) + { + // No name was supplied. + // Don't display anything. + } + else + { + string name = Request.QueryString["Name"]; + + // Create an in-memory bitmap where you will draw the image. + Bitmap image = new Bitmap(300, 50); + + // Get the graphics context for the bitmap. + Graphics g = Graphics.FromImage(image); + + g.FillRectangle(Brushes.LightYellow, 0, 0, 300, 50); + g.DrawRectangle(Pens.Red, 0, 0, 299, 49); + + // Draw some text based on the query string. + Font font = new Font("Alba Super", 20, FontStyle.Regular); + g.DrawString(name, font, Brushes.Blue, 10, 0); + + // Render the entire bitmap to the HTML output stream. + image.Save(Response.OutputStream, + System.Drawing.Imaging.ImageFormat.Gif); + + g.Dispose(); + image.Dispose(); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/Web.config b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/smiley.gif b/Beginning ASP.NET 3.5/Chapter12/CustomDrawing/smiley.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bc09bcf8de04512b1b44b529d8abc0600b3341b GIT binary patch literal 1053 zcmV+&1mgQgNk%v~VKo3X0M!5h|Ns98000mO04W#%Yf1=8F#s_k02mMeb5aP5V+c|? z0AorB@2wF3y%6`c5PMn(oO1}2YY5Ji2stSL&YTeMwGij65cj-?qjB5zBj0mlS2ue8s|IQGcdkDRh2q_@|T1o&) zLI5El01yxW2nYZe00?scA$tHJ#sD#;04a+z~<$)QY148s&Qx14gc%6@ngTlp_>FC+f1|L;@iCvPuxy01!=r zAp$H^inpm?n+HTl6da*|$Tmd;h?sDQCYTUgl#UUJFj2#h7Yv$J9KxcYgLXp_IJ~ez z$O%*wiL|8Tpk_?}ha-ZC;MkGK(2x^|kgGI;Uk0MxhLEhsfrtvA8-%25mUYP1aCYcb zvH&9hh*UI%7`VU`grgrEh*mftAf>Dk7aV{x;pieaRtNrla^OJ#y+tWl5GbKY!`DwG z1n&U>ZcR_aXf)L10D`R|qIWHQFtC&jVHp2Fy!b%?1!!2zMhG;;X6}y>_!1}vTOi@4Ep839||E<1VafZ zXm$oN*i~2mK?eYm1KkL!-9SSPHRKRL1RvBSfHJyNaL*8Nsq&!^oH?UN1upoYpAIMf zFo7c;Ja)kd{~=V_A}a~-z&{+d5JL_$*q}oWJq*!-WNi>u1P0|Cf&daMm|%z-vanJE z4LbPHg8)N_aHJ&=7;yjt>Wl!v9Cj#>fC(B}i;BW;N XFtz_^yGX_GZN8Z^XU?4O zTz=o>e0%Z2@=KqbTlt$PqE0biOieEq3vKl^D3c{E6Jj0;e4d(~o;E9mK=B4$M=Njz zW4+1R!v(l=zi$RF0xt&N0=^Zz1bjRAHt+1-H@0P2gMVRK7vw2Oqwq=uXV6O z_RZA%OyZYq`-LHfL`IBa?uOWhl7SJKqZ*gxEZ!NYFHIZ8yc+5V^@8Il-KwybHuE{F zs#gr6?=i6xQZg8W8iA^JlB;^GhkWWUbyinC*Pr@LqW;p3^KNJMr=B@K>Oc3F^Q0Xp zwgI)MQ|)=b3(t3h?*Xp_-wR#^z7M<=d_S1&)>(I!>rsBldVU!90C+w45%31^MsN_! zwvXcOv&xOQH(BKt+&5X}Hr(5-GQZhkl{<0Y27b(X=DQHeVQ>W81%4dN`u{tf8+hl{ z6JMO&@%~4X%R9q$SxkFYL@blJ?lI9JqGA|Y9D~M0p;v~81J_CXc#R8>MEkh#;>nO! zrwQd2`PBiu8<$#`7Jku)x(Q1g*`sNjQX+x6sBMIoL-bN}N1S^##P9cl!*cCHxwQ+H zSi6Aefo1ZF-9TwC)>5rqNX%S2-7)oHJ$oUQD?5biBxKM69>$Ihqg0O8!2VFz84plb z%C+Zv+AA_C3>ib%={SCr+Yc0EA^8BF%Go}C@2SB4GtODTk3q%qgBXK>F^mC=DT&&w z>p0e7{{C}h$E)nW+6PosMeHXH z4oMuF{xgo6L2(Fs)P=buzgE{QC9{S0_ST7f>)Wq^V~wDJIfS(IaP{vKFxFD!jj z^r3HBmo(l+(K?MXEy0V|Kq@hrz)VJ@OeI@A&*d1*kyXA9#rWe+C9(EB*qaHt#_l$N z_#^IUg>~`Awslk(khA=wSZ`XSgxS#H3i(nlWs@A56;#u&tBPXzyMWR|kjgl?-&%{5 zIO3>oU$;9$-(IT$^_`Jt8mmt9=QTw|#s)B#1@=uJXh=_(w~QT@e8yV3 z^6m3yo%$$~<`=hf5|bX4YncC#9)_IsY8cVPt+*yB-Y`38Xn z+Q0GK*@zLdJTr;Sq8aU5R-GZ89;1u?70+=_EWygFs-kB#OXHVn<{x~+q^}6_@@8$V|Z%Rq$nPm3%rw(0xX90WedV0JyL|bJu>>RqmHLNdgYneG_4ccE$Ve|>01L$^G+R4ek$;f5qaD-5pWXi`FGoK(j_P(nzt-}5j(LB@XuKxpQ%e)gw<=IsJtp^r>7~~n0UZETUDw+Qp$W`YrxAphS z5xQS+{;i=uV}4C{{tu$CKA9-e{dEOJz<})S>JkPpW3ti5N)&t2`qlfe!XU+c^x|<;9g)`SX=$-(x(a zs}DV*e#w=Gs05%zRbuJ7#Np%>U{*V&+23Gnx=%uf_H=qT{$pa#-4z%IrdARx0l|oGs_E zWm~_bZkTf^KbvZNH`m_{f5b^Sszm=<(dj9xW51QHV1^=ytV9E@%uo1o_QzMw{z(1j z|C74A-+{Ku{;2bZ8SnFS$c#rE_@aj^Pip?Pvyg9({|6BHCSYF&f$A|_`7elh{&vo} z*hj_lkHU)X{5PY6r>#z|zVH9>^+2tD1XQj6Wb9Ag7Ve0KQZXYMG~%Pl?Wl`L%s0ziT^qh@MEf?>w#v+2Vb;J| zDx>KDu*9s@VPGi)JITp0Kf`yW@*l**Tv0yjHM=;Qdp;Mw$2=7%-$R`L*E|SM!us?N DqF_O% literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/LinkClickedEventArgs.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/LinkClickedEventArgs.cs new file mode 100644 index 0000000..247c4d9 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/LinkClickedEventArgs.cs @@ -0,0 +1,34 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public class LinkClickedEventArgs : EventArgs +{ + private string url; + public string Url + { + get { return url; } + set { url = value; } + } + + private bool cancel = false; + public bool Cancel + { + get { return cancel; } + set { cancel = value; } + } + + public LinkClickedEventArgs(string url) + { + Url = url; + } +} +public delegate void LinkClickedEventHandler(object sender, + LinkClickedEventArgs e); + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/NameTextBox.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/NameTextBox.cs new file mode 100644 index 0000000..6f5c683 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/App_Code/NameTextBox.cs @@ -0,0 +1,53 @@ +using System; +using System.Data; +using System.Configuration; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public class NameTextBox : TextBox +{ + private string firstName; + private string lastName; + + public string GetFirstName() + { + UpdateNames(); + return firstName; + } + + public string GetLastName() + { + UpdateNames(); + return lastName; + } + + private void UpdateNames() + { + int commaPos = this.Text.IndexOf(','); + int spacePos = this.Text.IndexOf(' '); + + string[] nameArray; + if (commaPos != -1) + { + nameArray = this.Text.Split(','); + firstName = nameArray[1]; + lastName = nameArray[0]; + } + else if (spacePos != -1) + { + nameArray = this.Text.Split(' '); + firstName = nameArray[0]; + lastName = nameArray[1]; + } + else + { + // The text has no comma or space. + // It cannot be converted to a name. + throw new InvalidOperationException(); + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx b/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx new file mode 100644 index 0000000..a8c7a1c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx @@ -0,0 +1,2 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Footer.ascx.cs" Inherits="Footer" %> + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx.cs new file mode 100644 index 0000000..60010df --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/Footer.ascx.cs @@ -0,0 +1,37 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Footer : System.Web.UI.UserControl +{ + protected void Page_Load(object sender, EventArgs e) + { + lblFooter.Text = "This page was served at "; + + if (format == FooterFormat.LongDate) + { + lblFooter.Text += DateTime.Now.ToLongDateString(); + } + else if (format == FooterFormat.ShortTime) + { + lblFooter.Text += DateTime.Now.ToShortTimeString(); + } + } + + public enum FooterFormat + { LongDate, ShortTime } + + private FooterFormat format = FooterFormat.LongDate; + public FooterFormat Format + { + get { return format; } + set { format = value; } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx b/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx new file mode 100644 index 0000000..950a204 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx @@ -0,0 +1,30 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FooterHost.aspx.cs" Inherits="FooterHost" %> +<%@ Register TagPrefix="apress" TagName="Footer" Src="Footer.ascx" %> + + + + + + Footer Host + + + +
+
+

A Page With a Configurable Footer

+


+
+ + +
+ +

+ +
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx.cs new file mode 100644 index 0000000..213b7c4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/FooterHost.aspx.cs @@ -0,0 +1,30 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class FooterHost : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (optLong.Checked) + { + Footer1.Format = Footer.FooterFormat.LongDate; + } + else if (optShort.Checked) + { + Footer1.Format = Footer.FooterFormat.ShortTime; + } + else + { + // The default value in the Footer class will apply. + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx new file mode 100644 index 0000000..201c146 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx @@ -0,0 +1,16 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="LinkMenu.ascx.cs" Inherits="LinkMenu" %> +
+ Products: + Books +
+ Toys +
+ Sports +
+ Furniture + +
diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx.cs new file mode 100644 index 0000000..065398f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu.ascx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class LinkMenu : System.Web.UI.UserControl +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx new file mode 100644 index 0000000..e3ef79b --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx @@ -0,0 +1,15 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeFile="LinkMenu2.ascx.cs" Inherits="LinkMenu2" %> +
+ Products: + Books +
+ Toys +
+ Sports +
+ Furniture + +
diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx.cs new file mode 100644 index 0000000..7fa2752 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/LinkMenu2.ascx.cs @@ -0,0 +1,37 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class LinkMenu2 : System.Web.UI.UserControl +{ + public event LinkClickedEventHandler LinkClicked; + + protected void lnk_Command(object sender, CommandEventArgs e) + { + // One of the LinkButton controls has been clicked. + // Raise an event to the page. + if (LinkClicked != null) + { + // Pass along the link information. + LinkClickedEventArgs args = new LinkClickedEventArgs((string)e.CommandArgument); + LinkClicked(this, args); + + // Perform the redirect. + if (!args.Cancel) + { + // Notice we use the Url from the LinkClickedEventArgs + // object, not the original link. That means the web page + // can change the link if desired before the redirect. + Response.Redirect(args.Url); + } + } + } +} + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx b/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx new file mode 100644 index 0000000..478c367 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx @@ -0,0 +1,31 @@ +<%@ Page Language="C#" AutoEventWireup="true" + CodeFile="Menu2Host.aspx.cs" Inherits="Menu2Host"%> +<%@ Register TagPrefix="apress" TagName="LinkMenu2" Src="LinkMenu2.ascx" %> + + + + + + Menu Host + + + +
+
+ + + + + +
+ + +   
+    +
+
+   +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx.cs new file mode 100644 index 0000000..2ea5b0a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/Menu2Host.aspx.cs @@ -0,0 +1,40 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Menu2Host : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + if (Request.Params["product"] != null) + { + lblSelection.Text = "You chose: "; + lblSelection.Text += Request.Params["product"]; + } + } + } + + protected void LinkClicked(object sender, LinkClickedEventArgs e) + { + if (e.Url == "Menu2Host.aspx?product=Furniture") + { + lblClick.Text = "This link is not allowed."; + e.Cancel = true; + } + else + { + // Allow the redirect, and don't make any changes to the URL. + } + } + +} + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx b/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx new file mode 100644 index 0000000..13071d8 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" + CodeFile="MenuHost.aspx.cs" Inherits="MenuHost"%> +<%@ Register TagPrefix="apress" TagName="LinkMenu" Src="LinkMenu.ascx" %> + + + + + + Menu Host + + + +
+
+ + + + + +
+ + +    +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx.cs b/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx.cs new file mode 100644 index 0000000..d69d41d --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/MenuHost.aspx.cs @@ -0,0 +1,23 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MenuHost : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (Request.Params["product"] != null) + { + lblSelection.Text = "You chose: "; + lblSelection.Text += Request.Params["product"]; + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter12/UserControls/StyleSheet.css new file mode 100644 index 0000000..dca6735 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/StyleSheet.css @@ -0,0 +1,11 @@ +body { + font-family: Verdana; + } + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter12/UserControls/Web.config b/Beginning ASP.NET 3.5/Chapter12/UserControls/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter12/UserControls/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages.sln b/Beginning ASP.NET 3.5/Chapter13/MasterPages.sln new file mode 100644 index 0000000..f440d8d --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MasterPages", "MasterPages\", "{B3B185BA-F168-47F2-B436-059BA9DFEE7E}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/MasterPages" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter13\MasterPages\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\MasterPages\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/MasterPages" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter13\MasterPages\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\MasterPages\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "64654" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B3B185BA-F168-47F2-B436-059BA9DFEE7E}.Debug|.NET.ActiveCfg = Debug|.NET + {B3B185BA-F168-47F2-B436-059BA9DFEE7E}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages.suo b/Beginning ASP.NET 3.5/Chapter13/MasterPages.suo new file mode 100644 index 0000000000000000000000000000000000000000..80cddca4834395cb6fc80b058ef8671542ee77ad GIT binary patch literal 9728 zcmeHM-EUMy6rX}1h{~rG5pl(eAardhg|=XIKLgT2?JjL&Hj-ucc3HZ;yV>0$jcAa> z1W9=DL5Yb*6HN$F65iA&!NlkjyciRo^e+&fe4_RDo4M1yyWNkwyR8Pp*_^#|=gysT z=FIt>IWzb6t+l^@etpv)qJ;XzQZX~TQY^RCx1daxv_^;}DDZw}c6L@(3W4H%x`!-q z7rH)R&EYa!Io}V0SAbW79|EreKLUOj{3sYxFII!sf;so(`*d$wU|6K_%L|tX2ou+= zn8vI+r&h6S4)gSvYIJAgjUNWq{M51(jlQSzfQBG3El!C;kUox5K%7wz9R9b8B`tQ# zJA6(0Fx!p_L!1yfk;K>yaSSB`8Y!(ZvYf{=1NG%;7os5L6BE3aZ&h5&n5jn@7E$y) zAqF5N2OYEqy1tTJ-D4ZZ{{(J`S*P-8f8v`&>@tpP9P?_A0eve7&ETiNTfk3)UEpWHTfxtQ+rZC(`OfpWZnw%WSl3;+wu9Z^ z7r`CiPVjDU7kCf28@w0158MOp1^0pXgAagT0{4RhV6B@MWuNUnXqBPH|DLXoefZw{ zUtc@?@uz3j_WN7&7L$|GnhdW&lq*O zQ0|s*oy4<@L}3=Q+J(AF*_yb_;z<ot7Rm_&!3Oy;;%3{II7)3O}#PUZ7yGw04tBu(~h7o_8_fqBad zzqD`?mgf9q*|-L|toYlCb_7d}=JGLdr`wHSM#J!!v`E2U(uj*8Dfu)!CWcZi+KTwg zn8WzvR6g?^GHFX3vk zCahDP82>4k@!6?-=6UT@n)G^ej;6a&oz?%(_lLoL89RI!vx*&F%u8wP@W3~QFh@ra zy~CmqJA7h(>~N}y_5-KwE45=k#EVakL!l~xnkeSiC4%s-l=QTS7?hsPtS1K^hqt-J z2` z3>K}N^FZJn5&s);$MHM$KSt~gRu84}y%?7P9VUQ*G_1m$v>FDsL;gDS#XQ8ReC}!9 zs34#DC*uyIfD;66v+_U6CRyE9y>K6;^RLqJ(^E{$eF&qUl5<==210%d$HP9I%I99L zl}R7Snb*-LQt;$)>2uom^nJ5F*o+QJv*vNohz^{o80FLq{zvq{W*RV}Ra&N$@$uA9IzkH7ep=WtgUn zzJ*9#oEdRtVk|OBB2u5V{?;SEc>HPj&=kh3dbW>w2r|{qv~ncsu;LH*WKQwVc+LGH z$$q}4YU=xM_I<|fL5x2o<1JUdDCVB)UuN!XfV(#4*xbc&pYfLPVt?SpE};i|2e0s8 zR~W?IUfj2%#Xj8aM#+nE7i!zFes*IWWy@Y<8bRa_0kjH;x3RXy;a$aYRsLm{%H3{p zn_}-^+ZAHl0_(P4?pPOgv<1AKm6?eGkOb5ER;IiLYwEY-qlSmC1cf1bBEm2Zzf%%t5|*S*rx%=^61 zD30DrG1mbU*?&Zp`c*IKR{H7`a|-EuB&z*D>mK0MEAdTKE2Q@T(SFoo_T4>DmrM%+)15nO0r(ZmK0A#+JJ432e;V+-v~x?8X5dRo zAC=W!Tx4wu@^f;Bl804%uuTYBsMGC&KHTLuhtJy9vFkHm1LE@hB3nd_zThXhGL~SD zbY+qC@F0R^#BrO4FmeWgFcarV)3*8uW~-W4GdWyrKk`E(?l~uc@|aDxa@J$Ee6FnZ z+OW>>^n5~MB#UbfXNDs(GwZ}WbjUAcc)bFZzFmku6<#Q*-rPX^c^Q51+a5`O=hWXn z8DqEx@eGo?f?5%{k@)utv%2~9_z1;*JRVN zTg+-3r~f+lnz$H0&hN?E2KA047qNXPD-_FqD=XJ`Gv6rek(-$#Pycxe6h|prCWcx| Kb~!Z~uKNd4k{1#H literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master new file mode 100644 index 0000000..17df248 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master @@ -0,0 +1,20 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="DefaultContent.master.cs" Inherits="DefaultContent" %> + + + + + + Untitled Page + + +
+
+ Apress
+ + This is default content.
+
+ This is a simple footer. +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master.cs new file mode 100644 index 0000000..5bb1d3f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContent.master.cs @@ -0,0 +1,16 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class DefaultContent : System.Web.UI.MasterPage +{ + + +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx new file mode 100644 index 0000000..a5764b8 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx @@ -0,0 +1,3 @@ +<%@ Page Language="C#" MasterPageFile="~/DefaultContent.master" AutoEventWireup="true" CodeFile="DefaultContentPage.aspx.cs" Inherits="DefaultContentPage_aspx" Title="Untitled Page" %> + + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx.cs new file mode 100644 index 0000000..fe188a2 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DefaultContentPage.aspx.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class DefaultContentPage_aspx : System.Web.UI.Page +{ + + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx new file mode 100644 index 0000000..43cca52 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx @@ -0,0 +1,3 @@ +<%@ Page Language="C#" MasterPageFile="~/SiteTemplate.master" AutoEventWireup="true" CodeFile="DynamicContentPage.aspx.cs" Inherits="DynamicContentPage_aspx" Title="Untitled Page" %> +Sample content + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx.cs new file mode 100644 index 0000000..66ee9b2 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/DynamicContentPage.aspx.cs @@ -0,0 +1,23 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class DynamicContentPage_aspx : System.Web.UI.Page +{ + protected void Page_PreInit(object sender, EventArgs e) + { + this.MasterPageFile = "TableMaster.master"; + + } + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master new file mode 100644 index 0000000..0ea74c5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master @@ -0,0 +1,31 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MultipleContent.master.cs" Inherits="MultipleContent" %> + + + + + + Untitled Page + + +
+
+ Apress

+ + + +
+ + OTHER LINKS
+
+ + +
+ This is a simple footer. +
+
+ + + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master.cs new file mode 100644 index 0000000..f5f057f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContent.master.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MultipleContent : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx new file mode 100644 index 0000000..e642c1d --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx @@ -0,0 +1,19 @@ +<%@ Page Language="C#" MasterPageFile="~/MultipleContent.master" AutoEventWireup="true" CodeFile="MultipleContentPage.aspx.cs" Inherits="MultipleContentPage_aspx" Title="Untitled Page" %> + + This is the generic content for this page. Here you might provide some site specific + text. This is the generic content for this page. Here you might provide some site + specific text. This is the generic content for this page. Here you might provide + some site specific text. This is the generic content for this page. Here you might + provide some site specific text.
+
+ This is the generic content for this page. Here you might provide some site specific + text. This is the generic content for this page. Here you might provide some site + specific text.This is the generic content for this page. Here you might provide + some site specific text.
+ + Here's a link. +
+ Here's a link.
+ Here's a link.
+ Here's a link.
+ diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx.cs new file mode 100644 index 0000000..14948e5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/MultipleContentPage.aspx.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MultipleContentPage_aspx : System.Web.UI.Page +{ + + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx new file mode 100644 index 0000000..1e6af0a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx @@ -0,0 +1,6 @@ +<%@ Page Language="C#" MasterPageFile="~/SiteTemplate.master" AutoEventWireup="true" CodeFile="SimpleContentPage.aspx.cs" Inherits="SimpleContentPage_aspx" Title="Content Page" %> + +
+      Here's some new content!
+
+ diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx.cs new file mode 100644 index 0000000..9fd3914 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SimpleContentPage.aspx.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class SimpleContentPage_aspx : System.Web.UI.Page +{ + + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master new file mode 100644 index 0000000..9b4d588 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master @@ -0,0 +1,18 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="SiteTemplate.master.cs" Inherits="SiteTemplate" %> + + + + + + Untitled Page + + +
+
+ Logo
+ + + This is a simple footer.
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master.cs new file mode 100644 index 0000000..f90767e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/SiteTemplate.master.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class SiteTemplate : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx new file mode 100644 index 0000000..8f8ddcd --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx @@ -0,0 +1,8 @@ +<%@ Page Language="C#" MasterPageFile="~/TableMaster.master" AutoEventWireup="true" CodeFile="TableContentPage.aspx.cs" Inherits="TableContentPage_aspx" Title="Untitled Page" %> + + Your content goes in this cell.
+
+ + +
+ diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx.cs new file mode 100644 index 0000000..d9c62a7 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableContentPage.aspx.cs @@ -0,0 +1,27 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class TableContentPage_aspx : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + } + protected void cmdHide_Click(object sender, EventArgs e) + { + TableMaster master = (TableMaster)this.Master; + master.ShowNavigationControls = false; + } + protected void cmdShow_Click(object sender, EventArgs e) + { + TableMaster master = (TableMaster)this.Master; + master.ShowNavigationControls = true; + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master new file mode 100644 index 0000000..e9048c7 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master @@ -0,0 +1,41 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TableMaster.master.cs" Inherits="TableMaster" %> + + + + + + Untitled Page + + +
+ + + + + + + + + + + +
+

My Header

+
+ + + + + + + + + + + +
+ My Footer +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master.cs b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master.cs new file mode 100644 index 0000000..d8efe1c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/TableMaster.master.cs @@ -0,0 +1,25 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class TableMaster : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + + public bool ShowNavigationControls + { + set { Treeview1.Visible = value; } + get { return Treeview1.Visible; } + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/Web.config b/Beginning ASP.NET 3.5/Chapter13/MasterPages/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/MasterPages/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter13/MasterPages/apress.JPG b/Beginning ASP.NET 3.5/Chapter13/MasterPages/apress.JPG new file mode 100644 index 0000000000000000000000000000000000000000..294e229d8820791808f43e172a4ad71ecfaea7b4 GIT binary patch literal 9788 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 Zy8Hg!E+6uZy5k&Odc!6ZI6!E}-vM;Ll->XU literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Buttons.skin b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Buttons.skin new file mode 100644 index 0000000..b1bc432 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Buttons.skin @@ -0,0 +1,8 @@ + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Calendar.skin b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Calendar.skin new file mode 100644 index 0000000..379d40e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/Calendar.skin @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/FunkyTheme.skin b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/FunkyTheme.skin new file mode 100644 index 0000000..b06cb92 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/FunkyTheme.skin @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/StyleSheet.css new file mode 100644 index 0000000..850d975 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/FunkyTheme/StyleSheet.css @@ -0,0 +1,12 @@ +body +{ + font-family: Verdana, Arial, Sans-Serif; + font-size: small; +} + +.heading1 +{ + font-weight: bold; + font-size: large; + color: orange; +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/ProTheme/ProTheme.skin b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/ProTheme/ProTheme.skin new file mode 100644 index 0000000..1602324 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/App_Themes/ProTheme/ProTheme.skin @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx new file mode 100644 index 0000000..8cc695a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx @@ -0,0 +1,28 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CSSStyles.aspx.cs" Inherits="CSSStyles" %> + + + + + + Untitled Page + + + +
+
+ +
+ This is sample unformatted text.
+  
+ +
+ Here's more unformatted text.
+
+  
+ This control uses the blockText style. This control uses the blockText style. This + control uses the blockText style. This control uses the blockText style. +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx.cs new file mode 100644 index 0000000..e99b1d4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/CSSStyles.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CSSStyles : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx new file mode 100644 index 0000000..82ea303 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Calendar.aspx.cs" Inherits="Calendar" Theme="FunkyTheme" %> + + + + + + Untitled Page + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx.cs new file mode 100644 index 0000000..9e493bc --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/Calendar.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Calendar : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx new file mode 100644 index 0000000..ea6cbb5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx @@ -0,0 +1,19 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DynamicThemes.aspx.cs" Inherits="DynamicThemes" Theme="ProTheme" %> + + + + + + Untitled Page + + +
+
+
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx.cs new file mode 100644 index 0000000..b70a709 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/DynamicThemes.aspx.cs @@ -0,0 +1,61 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.IO; + +public partial class DynamicThemes : System.Web.UI.Page +{ + + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + // Fill the list box with available themes + // by reading the folders in the App_Themes folder. + DirectoryInfo themeDir = new DirectoryInfo(Server.MapPath("App_Themes")); + lstThemes.DataTextField = "Name"; + lstThemes.DataSource = themeDir.GetDirectories(); + lstThemes.DataBind(); + } + } + + protected void Page_PreInit(object sender, EventArgs e) + { + if (Session["Theme"] == null) + { + // No theme has been chosen. Choose a default + // (or set a blank string to make sure no theme + // is used). + Page.Theme = ""; + } + else + { + Page.Theme = (string)Session["Theme"]; + } + } + + protected void cmdApply_Click(object sender, EventArgs e) + { + // Set the chosen theme. + Session["Theme"] = lstThemes.SelectedValue; + + // Refresh the page. + Server.Transfer(Request.FilePath); + + } + protected void cmdClear_Click(object sender, EventArgs e) + { + // Set the chosen theme. + Session["Theme"] = ""; + + // Refresh the page. + Server.Transfer(Request.FilePath); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx new file mode 100644 index 0000000..663c001 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageInTheme.aspx.cs" Inherits="ImageInTheme" Theme="FunkyTheme" %> + + + + + + Untitled Page + + +
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx.cs new file mode 100644 index 0000000..3ea2cf4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/ImageInTheme.aspx.cs @@ -0,0 +1,19 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ImageInTheme : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter13/Themes/StyleSheet.css new file mode 100644 index 0000000..40da053 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/StyleSheet.css @@ -0,0 +1,26 @@ +body +{ + font-family: Verdana, Arial, Sans-Serif; + font-size: small; +} + +.heading1 +{ + font-weight: bold; + font-size: large; + color: lime; +} +.heading2 +{ + font-weight: bold; + font-size: medium; + font-style: italic; + color: #C0BA72; +} +.blockText +{ + padding: 10px; + background-color: #FFFFD9; + border-style: solid; + border-width: thin; +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx new file mode 100644 index 0000000..64b9b82 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx @@ -0,0 +1,27 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Themes.aspx.cs" Inherits="Themes" StylesheetTheme="FunkyTheme" %> + + + + + + Untitled Page + + +
+
+ Test  
+
+ + Test + +
+
+
+ +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx.cs new file mode 100644 index 0000000..d68128a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/Themes.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class Themes : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx b/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx new file mode 100644 index 0000000..1d81833 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx @@ -0,0 +1,25 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ThemesWithCSS.aspx.cs" Inherits="ThemesWithCSS" Theme="FunkyTheme" %> + + + + + + Untitled Page + + + +
+
+ +
+
+ Test  
+
+ + Test + +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx.cs b/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx.cs new file mode 100644 index 0000000..5344970 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/ThemesWithCSS.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class ThemesWithCSS : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter13/Themes/Web.config b/Beginning ASP.NET 3.5/Chapter13/Themes/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter13/Themes/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.sln b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.sln new file mode 100644 index 0000000..117b706 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MenuSiteMap", "MenuSiteMap\", "{77A6C9A3-071F-4E3B-9156-46B87B120D45}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/MenuSiteMap" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\MenuSiteMap\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\MenuSiteMap\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/MenuSiteMap" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\MenuSiteMap\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\MenuSiteMap\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "55454" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {77A6C9A3-071F-4E3B-9156-46B87B120D45}.Debug|.NET.ActiveCfg = Debug|.NET + {77A6C9A3-071F-4E3B-9156-46B87B120D45}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.suo b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap.suo new file mode 100644 index 0000000000000000000000000000000000000000..215aabaf5c9066462bcfb3f432d184159352055b GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master new file mode 100644 index 0000000..96baa87 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master @@ -0,0 +1,48 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> + + + + + + Navigation Test + + + +
+ + + + + +
+ + + + + + + + + + + + <%# Eval("Text") %>
+ + <%# GetDescriptionFromTitle(((MenuItem)Container.DataItem).Text) %> + +
+ + <%# Eval("Text") %>
+ + <%# GetDescriptionFromTitle(((MenuItem)Container.DataItem).Text) %> + +
+
+
+ +
+ + + + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master.cs new file mode 100644 index 0000000..6560318 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/MasterPage.master.cs @@ -0,0 +1,55 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MasterPage : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + } + + protected string GetDescriptionFromTitle(string title) + { + // This assumes there's only one node with this title. + SiteMapNode startingNode = SiteMap.RootNode; + SiteMapNode matchNode = SearchNodes(startingNode, title); + if (matchNode == null) + { + return null; + } + else + { + return matchNode.Description; + } + } + + private SiteMapNode SearchNodes(SiteMapNode node, string title) + { + if (node.Title == title) + { + return node; + } + else + { + // Perform recursive search. + foreach (SiteMapNode child in node.ChildNodes) + { + SiteMapNode matchNode = SearchNodes(child, title); + // Was a match found? + // If so, return it. + if (matchNode != null) return matchNode; + } + // All the nodes were examined, but no match was found. + return null; + } + } + + +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.config b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.sitemap b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.sitemap new file mode 100644 index 0000000..0430eee --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/Web.sitemap @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx new file mode 100644 index 0000000..b5c1459 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="aboutus.aspx.cs" Inherits="aboutus" Title="Untitled Page" %> + + About Us + + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx.cs new file mode 100644 index 0000000..809706c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/aboutus.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class aboutus : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/arrowright.gif b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/arrowright.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c19eb40a6c9d610333da990650c7c45ed145e32 GIT binary patch literal 64 zcmZ?wbhEHb + +
+
+
+
+ You are currently on the default.aspx page (home). +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/default.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/default.aspx.cs new file mode 100644 index 0000000..87b8c45 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/default.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class _default : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx new file mode 100644 index 0000000..b60ef60 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="financial.aspx.cs" Inherits="financial" Title="Untitled Page" %> + + Investing + + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx.cs new file mode 100644 index 0000000..901320c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/financial.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class financial : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx new file mode 100644 index 0000000..98422bd --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx @@ -0,0 +1,11 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product1.aspx.cs" Inherits="product1" Title="Untitled Page" %> + +
+
+ You are currently on the product1.aspx page (RevoStock).
+
+ Next +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx.cs new file mode 100644 index 0000000..702fe79 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product1.aspx.cs @@ -0,0 +1,26 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product1 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (SiteMap.CurrentNode.NextSibling != null) + { + lnkNext.NavigateUrl = SiteMap.CurrentNode.NextSibling.Url; + lnkNext.Visible = true; + } + else + { + lnkNext.Visible = false; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx new file mode 100644 index 0000000..9165ad6 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx @@ -0,0 +1,6 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product2.aspx.cs" Inherits="product2" Title="Untitled Page" %> + +
+ You are currently on the product2.aspx page (RevoAnalyze).
+
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx.cs new file mode 100644 index 0000000..37d790a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/product2.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx new file mode 100644 index 0000000..8e62e19 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx @@ -0,0 +1,8 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="products.aspx.cs" Inherits="products" Title="Untitled Page" %> + +
+
+ You are currently on the products.aspx page (Products). +
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx.cs new file mode 100644 index 0000000..dd889d6 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/MenuSiteMap/products.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class products : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.sln b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.sln new file mode 100644 index 0000000..08d4b87 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "PartialSiteMaps", "PartialSiteMaps\", "{00413EFF-3CEA-4175-8C4C-4DD3841FABD5}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/PartialSiteMaps" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\PartialSiteMaps\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\PartialSiteMaps\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/PartialSiteMaps" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\PartialSiteMaps\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\PartialSiteMaps\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "55585" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {00413EFF-3CEA-4175-8C4C-4DD3841FABD5}.Debug|.NET.ActiveCfg = Debug|.NET + {00413EFF-3CEA-4175-8C4C-4DD3841FABD5}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.suo b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps.suo new file mode 100644 index 0000000000000000000000000000000000000000..9aceeb8dd5057be8279c8062b1ad6288ec5b9be9 GIT binary patch literal 10752 zcmeI2O>A6O700iWCZwd0h8EK=!jOiLet59sxcMr9`LLTbapJ_T6IDYa$1`>&9?y(s zJRuPUnMz0ni7r@_3W?HIRIRE~DLdK~bb(-%vOq{kNPvWdx@o)Ws&Rk+``-0@KR?gJ zK%`vj%)9Tt`|dgSeBE=-^Ltmf{^R8<_x#f|v_odSxwdqx*;q5)LtkLq?Z&L5qx)-1 zOH1CMF?4UX8;Ap+Ktol*;%te1_!c4LDoH+)TGBh{}+;}^@Zp9to7b|6_VeyOqvTrrntmNkG zSJzq};Kt70 z?(+K&`qziK_5o4g8$drW0PF?^fjz(w@CdLM*az$f4gd#%M}cnwhk$PZ-v(kp97q63 zU>Fzy9s>>oM}WtHF~IHRIQpTAv?s44B5*qYn?Y_1Sb#iT7D-7yB@biZZ^ZY%iUFkmfs_4*vLiQd5_}VAOaTd> z0tPF7x<+E@~2_(*Y5v} znP=x?==3zFz!aR%;9EpP7FzOfC%DP~3$JUzv%RN^^ZxEn^mVSau7y}kd+(;{{Zl~F z`i=y9_IyViJ~aA{7`icrjE>`_Crs6MBuumK2uqXGgRt}4&C@!vmxSGiXH~O|Od;P0 zCrTD6%eGQx)M~b(o-#0lq$6gMv9hT!JICEPV->5B1@88<<9^s<5&DCzZ2F1cYV{ z83+47@UPnbmCN<&(4vLYI_X3XO`fqj=XB5AcdLWl(BM(ly&ZHygCsQ#Uu3I_cRFpp zDC%DCW~^?Z6>i$=-(}>j6FC>Sg7nYT2g2%q?fKV;e-uv6gH?IxY2OwK=DTfufbuW- z6V)NY;_qedgug4=?5}?R1$3ywp1qZ8_dEtp zFY0X{3-p6uxvX-su=|(4md{f2>wEuEPDmh?zGZSf?r~}9uou>7bl-P2NW!*7QtGeU zy#BS57yrHS&s(3<`&)Lt|4PsIIHdXs+Xo2ghhgIgsoEe%)-WknpB>*zpx;NLkl-$1 z$C4%~xs9^_9K6lilh2F!D|lch0cCBLKC-wy%*qMyytr9&H<_K+nYM#AW4*q+t=ikuHj+xBW9{_M)gqEMCYWM(%`Mu& z`Fl6ZxVTH_oII$DcRf3sK^JBjRs7_hG~?C?_HXrGy06xHR{f~zHGl9O>0W;`gBNdGp>+fCsuX;<^{nz>* zMbc5u^|Vn|A}`fxkD0UQfsBRq{WK8RBai&e2<42zJ~UBo9R;LWV%#wJ^1YqTHn?;zM( z`Ia#DJ8pJt{v`I$Pk(>-%HQ6&ddI7$w;VI2KRq6M;DrlEU;pb%KRk8qw{L)+`rv!- ze01j7?QajidEhV8FMNDSg*4i@**A0NyVu^`cI?-`OuzN>Z6EAk-TSJd1xwP&&0Xs` zc`~BB=f7Y1>9M=_zCrv1{;TpN%Sj`%6jBeHJw|Mdp$sf;S7^>86_MoeMdQrW`9F%K z6q)N)j-%*`A_LE3d3nGOx}Zn9sHb5NT*9g9uveS*sszd1g-t6XI`CsRI!{V>? ze}|E3+TzZ$=N#0GK#e@0xDX2evhVK%{|S5c<*XKZHPR~QlZ>uZgM3l+HKnlH!KvyP!heaR+gmz8=k4pIqWvre;2A zbCUsZ_S-MSs`u!uaHm(5S7)v&S~APenyC!t)&HA^IGg&FK7aeMSoJGOyOShuxz#TA z4LV(__SxzjRy`_A3oE~NYdQI~dwz2~m;;U0BdMz9vQpgdR=ux-`12?)@A4OL|L5ZV z|3$i_97NxsR25n&0`DaLJqB*~{Us>=9 + + + + + + Navigation Test + + + +
+ + + + + +
+ Home
+
+ Pages under the current page:
+ +
+ The Information group of pages:
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/MasterPage.master.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/MasterPage.master.cs new file mode 100644 index 0000000..f915754 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/MasterPage.master.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MasterPage : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/StyleSheet.css new file mode 100644 index 0000000..2b2dc92 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/StyleSheet.css @@ -0,0 +1,11 @@ +body { + font-family: Verdana; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.Config b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.Config new file mode 100644 index 0000000..69fe771 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.Config @@ -0,0 +1,86 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.sitemap b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.sitemap new file mode 100644 index 0000000..843b796 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/Web.sitemap @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx new file mode 100644 index 0000000..b5c1459 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="aboutus.aspx.cs" Inherits="aboutus" Title="Untitled Page" %> + + About Us + + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx.cs new file mode 100644 index 0000000..809706c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/aboutus.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class aboutus : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/arrowright.gif b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/arrowright.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c19eb40a6c9d610333da990650c7c45ed145e32 GIT binary patch literal 64 zcmZ?wbhEHb + +
+
+ You are currently on the default.aspx page (home). +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/default.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/default.aspx.cs new file mode 100644 index 0000000..87b8c45 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/default.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class _default : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx new file mode 100644 index 0000000..b60ef60 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="financial.aspx.cs" Inherits="financial" Title="Untitled Page" %> + + Investing + + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx.cs new file mode 100644 index 0000000..901320c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/financial.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class financial : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx new file mode 100644 index 0000000..b2944a2 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx @@ -0,0 +1,8 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="information.aspx.cs" Inherits="information" Title="Untitled Page" %> + +
+
+ You are currently on the information.aspx page. +
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx.cs new file mode 100644 index 0000000..c25e28e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/information.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class information : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx new file mode 100644 index 0000000..572bda9 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx @@ -0,0 +1,9 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product1.aspx.cs" Inherits="product1" Title="Untitled Page" %> + +
+
+ You are currently on the product1.aspx page (RevoStock). +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx.cs new file mode 100644 index 0000000..850d8d1 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product1.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product1 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx new file mode 100644 index 0000000..93da425 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx @@ -0,0 +1,4 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product2.aspx.cs" Inherits="product2" Title="Untitled Page" %> + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx.cs new file mode 100644 index 0000000..37d790a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/product2.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx new file mode 100644 index 0000000..8e62e19 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx @@ -0,0 +1,8 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="products.aspx.cs" Inherits="products" Title="Untitled Page" %> + +
+
+ You are currently on the products.aspx page (Products). +
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx.cs new file mode 100644 index 0000000..dd889d6 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/PartialSiteMaps/products.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class products : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.sln b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.sln new file mode 100644 index 0000000..c8eab2f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "SimpleSiteMap", "SimpleSiteMap\", "{8058E58D-EE49-408D-858F-B5819AB61790}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/SimpleSiteMap" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\SimpleSiteMap\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\SimpleSiteMap\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/SimpleSiteMap" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 3.5\Chapter14\SimpleSiteMap\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\SimpleSiteMap\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "55519" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8058E58D-EE49-408D-858F-B5819AB61790}.Debug|.NET.ActiveCfg = Debug|.NET + {8058E58D-EE49-408D-858F-B5819AB61790}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.suo b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap.suo new file mode 100644 index 0000000000000000000000000000000000000000..2148a5bd37fec1df648a63b91ed41fcb70b40c10 GIT binary patch literal 11264 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 K+iv||kMDn`iht$+ literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master new file mode 100644 index 0000000..2a052ea --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master @@ -0,0 +1,46 @@ +<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> + + + + + + Navigation Test + + + +
+ + + + + +
+ + + + + + Root + + + <%# Eval("title") %>
 <%# Eval("description") %> +
+
+
+ + + + + + + + +
+ +
+ + + + \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master.cs new file mode 100644 index 0000000..f915754 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/MasterPage.master.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class MasterPage : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.config b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.config new file mode 100644 index 0000000..b3b2e3e --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.config @@ -0,0 +1,113 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.sitemap b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.sitemap new file mode 100644 index 0000000..0430eee --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/Web.sitemap @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx new file mode 100644 index 0000000..b5c1459 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="aboutus.aspx.cs" Inherits="aboutus" Title="Untitled Page" %> + + About Us + + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx.cs new file mode 100644 index 0000000..809706c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/aboutus.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class aboutus : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/arrowright.gif b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/arrowright.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c19eb40a6c9d610333da990650c7c45ed145e32 GIT binary patch literal 64 zcmZ?wbhEHb + +
+
+ You are currently on the default.aspx page (home). +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/default.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/default.aspx.cs new file mode 100644 index 0000000..87b8c45 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/default.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class _default : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx new file mode 100644 index 0000000..b60ef60 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx @@ -0,0 +1,5 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="financial.aspx.cs" Inherits="financial" Title="Untitled Page" %> + + Investing + + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx.cs new file mode 100644 index 0000000..901320c --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/financial.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class financial : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx new file mode 100644 index 0000000..98422bd --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx @@ -0,0 +1,11 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product1.aspx.cs" Inherits="product1" Title="Untitled Page" %> + +
+
+ You are currently on the product1.aspx page (RevoStock).
+
+ Next +
+ + diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx.cs new file mode 100644 index 0000000..702fe79 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product1.aspx.cs @@ -0,0 +1,26 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product1 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (SiteMap.CurrentNode.NextSibling != null) + { + lnkNext.NavigateUrl = SiteMap.CurrentNode.NextSibling.Url; + lnkNext.Visible = true; + } + else + { + lnkNext.Visible = false; + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx new file mode 100644 index 0000000..9165ad6 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx @@ -0,0 +1,6 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="product2.aspx.cs" Inherits="product2" Title="Untitled Page" %> + +
+ You are currently on the product2.aspx page (RevoAnalyze).
+
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx.cs new file mode 100644 index 0000000..37d790a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/product2.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class product2 : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx new file mode 100644 index 0000000..8e62e19 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx @@ -0,0 +1,8 @@ +<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="products.aspx.cs" Inherits="products" Title="Untitled Page" %> + +
+
+ You are currently on the products.aspx page (Products). +
+ diff --git a/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx.cs b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx.cs new file mode 100644 index 0000000..dd889d6 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter14/SimpleSiteMap/products.aspx.cs @@ -0,0 +1,18 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class products : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET.sln b/Beginning ASP.NET 3.5/Chapter15/ADO.NET.sln new file mode 100644 index 0000000..2210248 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "ADO.NET", "ADO.NET\", "{C18347BE-FCE9-4786-8211-5163C081E5F7}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/ADO.NET" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter13\ADO.NET\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\ADO.NET\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/ADO.NET" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter13\ADO.NET\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\ADO.NET\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "54435" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C18347BE-FCE9-4786-8211-5163C081E5F7}.Debug|.NET.ActiveCfg = Debug|.NET + {C18347BE-FCE9-4786-8211-5163C081E5F7}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET.suo b/Beginning ASP.NET 3.5/Chapter15/ADO.NET.suo new file mode 100644 index 0000000000000000000000000000000000000000..0b91eb5e348b1c4fb21551a214193c224ae00d10 GIT binary patch literal 13312 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 literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx new file mode 100644 index 0000000..75da63a --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx @@ -0,0 +1,25 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AuthorBrowser.aspx.cs" Inherits="AuthorBrowser" %> + + + + + + Untitled Page + + + +
+
+ Select Author:  + + +
+
+
+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx.cs b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx.cs new file mode 100644 index 0000000..9f564a4 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorBrowser.aspx.cs @@ -0,0 +1,124 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Web.Configuration; +using System.Data.SqlClient; +using System.Text; + +public partial class AuthorBrowser : System.Web.UI.Page +{ + private string connectionString = + WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString; + + + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + FillAuthorList(); + } + } + + private void FillAuthorList() + { + lstAuthor.Items.Clear(); + + // Define the Select statement. + // Three pieces of information are needed: the unique id, + // and the first and last name. + string selectSQL = "SELECT au_lname, au_fname, au_id FROM Authors"; + + // Define the ADO.NET objects. + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(selectSQL, con); + SqlDataReader reader; + + // Try to open database and read information. + try + { + con.Open(); + reader = cmd.ExecuteReader(); + + // For each item, add the author name to the displayed + // list box text, and store the unique ID in the Value property. + while (reader.Read()) + { + ListItem newItem = new ListItem(); + newItem.Text = reader["au_lname"] + ", " + reader["au_fname"]; + newItem.Value = reader["au_id"].ToString(); + lstAuthor.Items.Add(newItem); + } + reader.Close(); + } + catch (Exception err) + { + lblResults.Text = "Error reading list of names. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + } + + protected void lstAuthor_SelectedIndexChanged(object sender, EventArgs e) + { + // Create a Select statement that searches for a record + // matching the specific author id from the Value property. + string selectSQL; + selectSQL = "SELECT * FROM Authors "; + selectSQL += "WHERE au_id='" + lstAuthor.SelectedItem.Value + "'"; + + // Define the ADO.NET objects. + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(selectSQL, con); + SqlDataReader reader; + + // Try to open database and read information. + try + { + con.Open(); + reader = cmd.ExecuteReader(); + reader.Read(); + + StringBuilder sb = new StringBuilder(); + sb.Append(""); + sb.Append(reader["au_lname"]); + sb.Append(", "); + sb.Append(reader["au_fname"]); + sb.Append("
"); + sb.Append("Phone: "); + sb.Append(reader["phone"]); + sb.Append("
"); + sb.Append("Address: "); + sb.Append(reader["address"]); + sb.Append("
"); + sb.Append("City: "); + sb.Append(reader["city"]); + sb.Append("
"); + sb.Append("State: "); + sb.Append(reader["state"]); + sb.Append("
"); + lblResults.Text = sb.ToString(); + + reader.Close(); + } + catch (Exception err) + { + lblResults.Text = "Error getting author. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx new file mode 100644 index 0000000..01826ed --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx @@ -0,0 +1,63 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AuthorManager.aspx.cs" Inherits="AuthorManager" %> + + + + + + Untitled Page + + + +
+
+
+
+ Select Author: +     +   + +
+ Or: +   + +
+
+
+ + Unique ID: +   + (required: ###-##-#### form)
+ + First Name: +
+ + Last Name: +
+ + Phone: +
+ + Address: +
+ + City: +
+ + State: +
+ + Zip Code: +   + (required: any five digits)
+
+ + Contract:  +
+
+ + +
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx.cs b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx.cs new file mode 100644 index 0000000..57c85ef --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/AuthorManager.aspx.cs @@ -0,0 +1,269 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Web.Configuration; +using System.Data.SqlClient; + +public partial class AuthorManager : System.Web.UI.Page +{ + private string connectionString = + WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString; + + + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + FillAuthorList(); + } + } + + private void FillAuthorList() + { + lstAuthor.Items.Clear(); + + // Define the Select statement. + // Three pieces of information are needed: the unique id, + // and the first and last name. + string selectSQL = "SELECT au_lname, au_fname, au_id FROM Authors"; + + // Define the ADO.NET objects. + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(selectSQL, con); + SqlDataReader reader; + + // Try to open database and read information. + try + { + con.Open(); + reader = cmd.ExecuteReader(); + + // For each item, add the author name to the displayed + // list box text, and store the unique ID in the Value property. + while (reader.Read()) + { + ListItem newItem = new ListItem(); + newItem.Text = reader["au_lname"] + ", " + reader["au_fname"]; + newItem.Value = reader["au_id"].ToString(); + lstAuthor.Items.Add(newItem); + } + reader.Close(); + } + catch (Exception err) + { + lblResults.Text = "Error reading list of names. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + } + + protected void lstAuthor_SelectedIndexChanged(object sender, EventArgs e) + { + // Define ADO.NET objects. + string selectSQL; + selectSQL = "SELECT * FROM Authors "; + selectSQL += "WHERE au_id='" + lstAuthor.SelectedItem.Value + "'"; + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(selectSQL, con); + SqlDataReader reader; + + // Try to open database and read information. + try + { + con.Open(); + reader = cmd.ExecuteReader(); + reader.Read(); + + // Fill the controls. + txtID.Text = reader["au_id"].ToString(); + txtFirstName.Text = reader["au_fname"].ToString(); + txtLastName.Text = reader["au_lname"].ToString(); + txtPhone.Text = reader["phone"].ToString(); + txtAddress.Text = reader["address"].ToString(); + txtCity.Text = reader["city"].ToString(); + txtState.Text = reader["state"].ToString(); + txtZip.Text = reader["zip"].ToString(); + chkContract.Checked = (bool)reader["contract"]; + reader.Close(); + lblResults.Text = ""; + } + catch (Exception err) + { + lblResults.Text = "Error getting author. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + + } + protected void cmdNew_Click(object sender, EventArgs e) + { + txtID.Text = ""; + txtFirstName.Text = ""; + txtLastName.Text = ""; + txtPhone.Text = ""; + txtAddress.Text = ""; + txtCity.Text = ""; + txtState.Text = ""; + txtZip.Text = ""; + chkContract.Checked = false; + + lblResults.Text = "Click Insert New to add the completed record."; + + + } + protected void cmdInsert_Click(object sender, EventArgs e) + { + // Perform user-defined checks. + if (txtID.Text == "" || txtFirstName.Text == "" || txtLastName.Text == "") + { + lblResults.Text = "Records require an ID, first name, and last name."; + return; + } + + // Define ADO.NET objects. + string insertSQL; + insertSQL = "INSERT INTO Authors ("; + insertSQL += "au_id, au_fname, au_lname, "; + insertSQL += "phone, address, city, state, zip, contract) "; + insertSQL += "VALUES ("; + insertSQL += "@au_id, @au_fname, @au_lname, "; + insertSQL += "@phone, @address, @city, @state, @zip, @contract)"; + + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(insertSQL, con); + + // Add the parameters. + cmd.Parameters.AddWithValue("@au_id", txtID.Text); + cmd.Parameters.AddWithValue("@au_fname", txtFirstName.Text); + cmd.Parameters.AddWithValue("@au_Lname", txtLastName.Text); + cmd.Parameters.AddWithValue("@phone", txtPhone.Text); + cmd.Parameters.AddWithValue("@address", txtAddress.Text); + cmd.Parameters.AddWithValue("@city", txtCity.Text); + cmd.Parameters.AddWithValue("@state", txtState.Text); + cmd.Parameters.AddWithValue("@zip", txtZip.Text); + cmd.Parameters.AddWithValue("@contract", Convert.ToInt16(chkContract.Checked)); + + // Try to open the database and execute the update. + int added = 0; + try + { + con.Open(); + added = cmd.ExecuteNonQuery(); + lblResults.Text = added.ToString() + " record inserted."; + } + catch (Exception err) + { + lblResults.Text = "Error inserting record. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + + // If the insert succeeded, refresh the author list. + if (added > 0) + { + FillAuthorList(); + } + } + + protected void cmdUpdate_Click(object sender, EventArgs e) + { + // Define ADO.NET objects. + string updateSQL; + updateSQL = "UPDATE Authors SET "; + updateSQL += "au_fname=@au_fname, au_lname=@au_lname, "; + updateSQL += "phone=@phone, address=@address, city=@city, state=@state, "; + updateSQL += "zip=@zip, contract=@contract "; + updateSQL += "WHERE au_id=@au_id_original"; + + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(updateSQL, con); + + // Add the parameters. + cmd.Parameters.AddWithValue("@au_fname", txtFirstName.Text); + cmd.Parameters.AddWithValue("@au_Lname", txtLastName.Text); + cmd.Parameters.AddWithValue("@phone", txtPhone.Text); + cmd.Parameters.AddWithValue("@address", txtAddress.Text); + cmd.Parameters.AddWithValue("@city", txtCity.Text); + cmd.Parameters.AddWithValue("@state", txtState.Text); + cmd.Parameters.AddWithValue("@zip", txtZip.Text); + cmd.Parameters.AddWithValue("@contract", Convert.ToInt16(chkContract.Checked)); + cmd.Parameters.AddWithValue("@au_id_original", lstAuthor.SelectedItem.Value); + + // Try to open database and execute the update. + int updated = 0; + try + { + con.Open(); + updated = cmd.ExecuteNonQuery(); + lblResults.Text = updated.ToString() + " record updated."; + } + catch (Exception err) + { + lblResults.Text = "Error updating author. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + + // If the updated succeeded, refresh the author list. + if (updated > 0) + { + FillAuthorList(); + } + + } + protected void cmdDelete_Click(object sender, EventArgs e) + { + // Define ADO.NET objects. + string deleteSQL; + deleteSQL = "DELETE FROM Authors "; + deleteSQL += "WHERE au_id=@au_id"; + + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(deleteSQL, con); + cmd.Parameters.AddWithValue("@au_id ", lstAuthor.SelectedItem.Value); + + // Try to open the database and delete the record. + int deleted = 0; + try + { + con.Open(); + deleted = cmd.ExecuteNonQuery(); + lblResults.Text = "Record deleted."; + } + catch (Exception err) + { + lblResults.Text = "Error deleting author. "; + lblResults.Text += err.Message; + } + finally + { + con.Close(); + } + + // If the delete succeeded, refresh the author list. + if (deleted > 0) + { + FillAuthorList(); + } + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx new file mode 100644 index 0000000..da5a5fc --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx @@ -0,0 +1,24 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ConnectionTester.aspx.cs" Inherits="ConnectionTester" %> + + + + + + Untitled Page + + +
+
+ +
+ +
+
+ +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx.cs b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx.cs new file mode 100644 index 0000000..4318804 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/ConnectionTester.aspx.cs @@ -0,0 +1,59 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Web.Configuration; +using System.Data.SqlClient; + +public partial class ConnectionTester : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + protected void cmdConnect_Click(object sender, EventArgs e) + { + // Define the connection string. + string connectionString = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=Pubs;"; + + if (optWindows.Checked) + { + connectionString += "Integrated Security=SSPI"; + } + else + { + connectionString += "User ID=sa"; + } + // Define the ADO.NET Connection object. + SqlConnection myConnection = new SqlConnection(connectionString); + + try + { + // Try to open the connection. + myConnection.Open(); + lblInfo.Text = "Server Version: " + myConnection.ServerVersion; + lblInfo.Text += "
Connection Is: " + myConnection.State.ToString(); + } + catch (Exception err) + { + // Handle an error by displaying the information. + lblInfo.Text = "Error reading the database. "; + lblInfo.Text += err.Message; + } + finally + { + // Either way, make sure the connection is properly closed. + // (Even if the connection wasn't opened successfully, + // calling Close() won't cause an error.) + myConnection.Close(); + lblInfo.Text += "
Now Connection Is: "; + lblInfo.Text += myConnection.State.ToString(); + } + } +} diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/StyleSheet.css b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/StyleSheet.css new file mode 100644 index 0000000..1411f55 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/StyleSheet.css @@ -0,0 +1,12 @@ +body { + font-family: Verdana; + font-size: 83%; +} + +div.Box +{ + padding: 5px; + border-width: 2px; + border-style: ridge; + background-color: Lime; +} diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx new file mode 100644 index 0000000..9e1db02 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx @@ -0,0 +1,17 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TableRelationships.aspx.cs" Inherits="TableRelationships" %> + + + + + + Untitled Page + + + +
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx.cs b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx.cs new file mode 100644 index 0000000..c82d81b --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/TableRelationships.aspx.cs @@ -0,0 +1,86 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Data.SqlClient; +using System.Web.Configuration; + +public partial class TableRelationships : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + CreateList(); + } + } + + private string connectionString = + WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString; + + + private void CreateList() + { + // Define ADO.NET objects. + string selectSQL = "SELECT au_lname, au_fname, au_id FROM Authors"; + SqlConnection con = new SqlConnection(connectionString); + SqlCommand cmd = new SqlCommand(selectSQL, con); + SqlDataAdapter adapter = new SqlDataAdapter(cmd); + DataSet dsPubs = new DataSet(); + + try + { + con.Open(); + adapter.Fill(dsPubs, "Authors"); + + // This command is still linked to the data adapter. + cmd.CommandText = "SELECT au_id, title_id FROM TitleAuthor"; + adapter.Fill(dsPubs, "TitleAuthor"); + + // This command is still linked to the data adapter. + cmd.CommandText = "SELECT title_id, title FROM Titles"; + adapter.Fill(dsPubs, "Titles"); + } + catch (Exception err) + { + lblList.Text = "Error reading list of names. "; + lblList.Text += err.Message; + } + finally + { + con.Close(); + } + + DataRelation Titles_TitleAuthor = new DataRelation("Titles_TitleAuthor", + dsPubs.Tables["Titles"].Columns["title_id"], + dsPubs.Tables["TitleAuthor"].Columns["title_id"]); + DataRelation Authors_TitleAuthor = new DataRelation("Authors_TitleAuthor", + dsPubs.Tables["Authors"].Columns["au_id"], + dsPubs.Tables["TitleAuthor"].Columns["au_id"]); + dsPubs.Relations.Add(Titles_TitleAuthor); + dsPubs.Relations.Add(Authors_TitleAuthor); + + foreach (DataRow rowAuthor in dsPubs.Tables["Authors"].Rows) + { + lblList.Text += "
" + rowAuthor["au_fname"]; + lblList.Text += " " + rowAuthor["au_lname"] + "
"; + + foreach (DataRow rowTitleAuthor in + rowAuthor.GetChildRows(Authors_TitleAuthor)) + { + foreach (DataRow rowTitle in + rowTitleAuthor.GetParentRows(Titles_TitleAuthor)) + { + lblList.Text += "  "; + lblList.Text += rowTitle["title"] + "
"; + } + } + } + } +} \ No newline at end of file diff --git a/Beginning ASP.NET 3.5/Chapter15/ADO.NET/Web.config b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/Web.config new file mode 100644 index 0000000..b355a40 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter15/ADO.NET/Web.config @@ -0,0 +1,115 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding.sln b/Beginning ASP.NET 3.5/Chapter16/DataBinding.sln new file mode 100644 index 0000000..c00e243 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding.sln @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio Codename Orcas +Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "DataBinding", "DataBinding\", "{8806AEBF-006E-485A-AC68-66275CF84A85}" + ProjectSection(WebsiteProperties) = preProject + TargetFramework = "3.5" + Debug.AspNetCompiler.VirtualPath = "/DataBinding" + Debug.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter16\DataBinding\" + Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\DataBinding\" + Debug.AspNetCompiler.Updateable = "true" + Debug.AspNetCompiler.ForceOverwrite = "true" + Debug.AspNetCompiler.FixedNames = "false" + Debug.AspNetCompiler.Debug = "True" + Release.AspNetCompiler.VirtualPath = "/DataBinding" + Release.AspNetCompiler.PhysicalPath = "D:\Code\Beginning ASP.NET 2.0\Chapter16\DataBinding\" + Release.AspNetCompiler.TargetPath = "PrecompiledWeb\DataBinding\" + Release.AspNetCompiler.Updateable = "true" + Release.AspNetCompiler.ForceOverwrite = "true" + Release.AspNetCompiler.FixedNames = "false" + Release.AspNetCompiler.Debug = "False" + VWDPort = "53420" + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|.NET = Debug|.NET + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8806AEBF-006E-485A-AC68-66275CF84A85}.Debug|.NET.ActiveCfg = Debug|.NET + {8806AEBF-006E-485A-AC68-66275CF84A85}.Debug|.NET.Build.0 = Debug|.NET + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding.suo b/Beginning ASP.NET 3.5/Chapter16/DataBinding.suo new file mode 100644 index 0000000000000000000000000000000000000000..ed0e91f7c364747b3ad51d27c7d8101c94a341e0 GIT binary patch literal 10240 zcmeHM+iz4w7@vY5h>F}QBI1e_LFln9Z7nTUyO#!~Ky6FghYe=gJ-aMjb~n3QDc*t) z8htP!JRrenG|_|*CE-ndlPBNcg_!W9e}Ves6Rp4B%$dD)&tppM830BAe3PsX2ePH2GHZU3yB%^!sE4BENd!X zOpl*Q{Uz^&FvW3^7fFoW6i0DqLLwzqR^Auz&P03dvIqFI584IgsLfT`N}s7mIVK|L zdrAxeB@Y?21iIZ0SNGTg{HO3hd-aOX`6oXM?U#O>wI=$2SFASr0Nrlq18DynEWS-; z{QQoxZ2>(E+6sCGv<>tui0_}X>gTQc1=Kr0FM@W0c7a|3?FQ`uwSsy;S|-*Vc;0KZ zb)oJqd%q9&y`Vm;4eZ78I@$(mv=;~`g&$vf3UfL>8Ptvmr0$V z7-l*wqOjr^EG7)QGDQMlL5I`+5M=qmL`{DqWpc%3n|9@aui-L0v$2M5vd1BNRzhp zyXtEp=>Ie}Yu)ZtGtaqfF$95kTucL($T`FV>ReQuz>}NrWfwl+H>1`vSlv2S%&#_D z9M$-K$Y4T-Da=7eYJ9;_j-9}#1u!@BI)3{8V-`O3X9N_Kwi^JZvRyxSPKdiAzk4 zt)CYnL$&@f|DxT~6MM119k74e6Ls3F{&7#C^N(tLt`vR!DCT}z&atx(0=~3=_URR$ z`C2obHi|v|8O%35VoEXETseMi`(E*xv*_-s@eg6{PXU#A_=GhV8FAXy2QdF6F85?! z@#%ZUECIZ0er+98t@p+bs3}pb4{eqCMx(`2g^JG?(pJ%t%R~A3iVJJa*9-lg_RgJ8 z4s%KGSMrp4XJ%rK3-Eo6#^mI+6d8Lh{o4%byy{=2{%6qtG<06|T(0xOz*IXkdr#B` ze6AJuCSLIwuj#K?g21rD*L$%bW`=oatztA_|4*VL9rx(xsKMIXs(FsX@)Oek5m}AC z7CQGt_4^;L)$JzLAJ1?O0VySM82KX51;)Q@ac?fft2hm0>63Z>d)R^XASQNW_Y@L- z=u9h~_#DDrC*F18O)DsXwjSJdwc+Y%sc&9ix_ZAbI#Z{AgwToyxhbb#-SZ* z%zRghA*DY1 z9)&+8YDC7cSkdN`*Dd*3i+x_j{TFd{na5D0p?v(KqGipUf!&|~df?jaD>pWLKe2X5 z-2COA$xpZc9QvX6R`lY(Gd!|E85KS8jn`+dZyWmVtJu{qw*9rwj#G#?2XPzcsa0pN-X`w2 z!{ix=0n4WTtF!mUWa+T>D7AKC&axbUgfXdmX~>j&#EdE@rBd@`cU`Fd9g(pw zCFe=aQpxgyXyu;Hslfi~*8diCcuWN}cw3%*Od zOwD&M#OMDj%;UY{m&gB5V073W#hzoSYA-u|8 zu76JU*X=Ya~z`F%LoQ2!6qlY1|o%#Hb9r+;qj{1;=t{obWf|6A{TKj2^78Tbz|!yaS+ literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx b/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx new file mode 100644 index 0000000..7e782d5 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx @@ -0,0 +1,49 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomParameters.aspx.cs" Inherits="CustomParameters" %> + + + + + + Custom Parameters + + + +
+
+ + + +
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx.cs b/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx.cs new file mode 100644 index 0000000..1cb70d7 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/CustomParameters.aspx.cs @@ -0,0 +1,26 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Linq; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class CustomParameters : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void sourceOrders_Selecting(object sender, + SqlDataSourceSelectingEventArgs e) + { + e.Command.Parameters["@EarliestOrderDate"].Value = DateTime.Today.AddYears(-10); + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx new file mode 100644 index 0000000..5bba595 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx @@ -0,0 +1,25 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataBindingUrl.aspx.cs" Inherits="DataBindingUrl" %> + + + + + + Untitled Page + + + +
+
+ <%# URL %> +

+ +

+ +

+ + +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx.cs b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx.cs new file mode 100644 index 0000000..6d35854 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataBindingUrl.aspx.cs @@ -0,0 +1,22 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class DataBindingUrl : System.Web.UI.Page +{ + public string URL; + + protected void Page_Load(Object sender, EventArgs e) + { + URL = "Images/picture.jpg"; + this.DataBind(); + } + +} diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx new file mode 100644 index 0000000..ccb227f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataSetBinding.aspx.cs" Inherits="DataSetBinding" %> + + + + + + Untitled Page + + + +
+
+
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx.cs b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx.cs new file mode 100644 index 0000000..550ad49 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DataSetBinding.aspx.cs @@ -0,0 +1,52 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class DataSetBinding : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + // Define a DataSet with a single DataTable. + DataSet dsInternal = new DataSet(); + dsInternal.Tables.Add("Users"); + + // Define two columns for this table. + dsInternal.Tables["Users"].Columns.Add("Name"); + dsInternal.Tables["Users"].Columns.Add("Country"); + + // Add some actual information into the table. + DataRow rowNew = dsInternal.Tables["Users"].NewRow(); + rowNew["Name"] = "John"; + rowNew["Country"] = "Uganda"; + dsInternal.Tables["Users"].Rows.Add(rowNew); + + rowNew = dsInternal.Tables["Users"].NewRow(); + rowNew["Name"] = "Samantha"; + rowNew["Country"] = "Belgium"; + dsInternal.Tables["Users"].Rows.Add(rowNew); + + rowNew = dsInternal.Tables["Users"].NewRow(); + rowNew["Name"] = "Rico"; + rowNew["Country"] = "Japan"; + dsInternal.Tables["Users"].Rows.Add(rowNew); + + // Define the binding. + lstUser.DataSource = dsInternal.Tables["Users"]; + lstUser.DataTextField = "Name"; + + // Define the binding. + lstUser.DataSource = dsInternal; + lstUser.DataMember = "Users"; + lstUser.DataTextField = "Name"; + + this.DataBind(); // Could also use lstItems.DataBind() to bind just the list box. + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx new file mode 100644 index 0000000..a8a6d4b --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx @@ -0,0 +1,20 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DictionaryCollection.aspx.cs" Inherits="DictionaryCollection" %> + + + + + + Untitled Page + + + +
+
+
+
+ +
+
+ + diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx.cs b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx.cs new file mode 100644 index 0000000..7e556c1 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/DictionaryCollection.aspx.cs @@ -0,0 +1,44 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; +using System.Collections.Generic; + +public partial class DictionaryCollection : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + if (!this.IsPostBack) + { + Dictionary fruit = new Dictionary(); + fruit.Add(1, "Kiwi"); + fruit.Add(2, "Pear"); + fruit.Add(3, "Mango"); + fruit.Add(4, "Blueberry"); + fruit.Add(5, "Apricot"); + fruit.Add(6, "Banana"); + fruit.Add(7, "Peach"); + fruit.Add(8, "Plum"); + + // Define the binding for the list controls. + MyListBox.DataSource = fruit; + MyListBox.DataTextField = "Value"; + MyListBox.DataValueField = "Key"; + // Activate the binding. + this.DataBind(); + } + + } + protected void MyListBox_SelectedIndexChanged(object sender, EventArgs e) + { + lblMessage.Text = "You picked: " + MyListBox.SelectedItem.Text; + lblMessage.Text += " which has the key: " + MyListBox.SelectedItem.Value; + + } +} diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/Images/picture.jpg b/Beginning ASP.NET 3.5/Chapter16/DataBinding/Images/picture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d5ec12d549f19a16d216b49023b5ac0d0a0b5ba1 GIT binary patch literal 2124 zcmbW$dpOhk9{}+0Y_qXRV|84{!Zi2iv_>0Ah@rAv<{C#w36WePmx!Gxk=!cErIUq; zlVd2?FpX2W47ruNrfFd#UG4Du{hsrCp5I@;bKdXg^VjG7e4h8~d4JyG5%CnT-Ok$9 z8UTSnfX`+E;&H$dfJ;ikB%yE^3??N7mqwyxkO%})QBGbKt)hfgRZ+rVcHs>0yVUhG zFc__U+Im0kArgsLJlT{)*l)0xNZ5J=Bqb$a^p->29v-;xZJpe&L z<<$0=OUgT(fT@R~35l8a;2IXyZ95$MmvMW44oi}f-uZ)qqLSuryq2~O(a>lgiEM0n z$jX{xV{7N+OmlH{bNBE)dCKp!e?VY(#QDgm3(+z3UoI!7T)CQ>m7SA&^VaRW{9o^v zFdmeal{0^@Vb#{vKYr5C-ofsC#_8(*gF7%d^lErybZmNNc5ePHZ{Zz(MJQTb`?&t; z^Or3b2mt?^^_T2_T&PW#1Ox(xz_wf&4I(EeiH#Xi;OzT9S z^LuEHBd>^_uSL4O@QG0m+x;1eBaGB?Qy9LU;S;Rd%7~iSJ*YHnV>IIum05rqNpjzZ zkzW+f7KI+in!RDtTjpL`nW!=CwMRK;wJW#<S?IV9k;1OZS2$6OD!p*l8u~ z6p^9+sDx{z1~-lzUQVcy$Sh33q5R}!QIY#kR#$b{a~&Zx8n1o_t4Up0(e}nl5utY8?;BDXh%@rJk5^6&y}qNL%D&dltU9Or@T-%X|4eMM zuG*2BP~lV@=bN#R5;zy9ac^(edcAI)RtB(sf?Ix};-?MnW229A(NdQ>Ww%j+*1_M7 zMvzK%4U+AS8uf2Wtj`r=<~43)+$zFF|NWS?$nRNypKEVVNMuZC#vzBp zgwHn}ILqZ#o@_$x%kF_->Jt3L@3No$T4%jrS88j5X6+w!OpEFxxsQTb zD&~+uOu|T!My9Wt^6%cPD?*r*-6`q7_Z~F2)B-b&M@qF=WSx z0gr|KC;ymGyA`s`qzjIV0n={7C39Sc&RL;^44yhoypJu|4J%{ftlrrlpqIv2y>lfB z4g}i?O)jM94^_8cpX+P;A&&fjda>M6&*#c?ru&^i`VCksHpR)C$7m$_Z{NAQY4TX1 zEMlSJbRe^STZx?P3s~62-p@U{%w_6TK^0M}q|o`g4eXY7ByZRG?lsJ?q`uv`2FfXf zwM)>diOI3j7di7OzV1p(SJTdpMdsFdPBwh7cEN`8DWyEOsCdoBSLpF~m#69$)=wvO zd@owr{JJy&-X?Vns_N#&=}6`H*4q{RB1^-L2*?Km=)}TsVtcFWc#lb zTRdZQ(IC|%0GaKbH=V8+@f@s|TB*IO72DYcUNBRo2Dxfa%MiW1zdtynmwB$~e2D1V zVjuDAb6eskAa9@GMP`{M9ow9XxgPE|ls&4<&2R}Ft15_P28Jaf(?tTOKA(uUtoL!I zzV|(wd+w{(4ZU^>l@er67A>}Q`Uh^{YPgogV}8JlCfT<)yq~g29~my-=QmGO?m3h4 zeInj%Sk3%PjA*zL^){=nD{TH+%lox-Sf_{KSEy~0jWPmF5BPGOGkiUld-!1oCbp1v zjJ$YBmq)cDV|<*S%Se78&ERq~99QscxJLTaz+_KOT8OuEyr~$F7Ma}1tKvoTA_ElW zvUKD*_WlBoc2x2+r#po+tDX431FWdUm+qh*f5>dJ3Wt|(20obHj9`Op>ixfE%{}q4 z^nEnDTD~T$z~6UfzTK(;l{^y0S*Z&7WTnE7rhV|pu1#sIsgBgVon?#9w(Vu87s|dW z_=aC$;_PK$0}T9fs?+8|9LNDc-Caa%d``+zJi2sA32=PTW+`WphAgC$Is63UBO7S5 XH|R(-+~lq-13zn%Q2by(Q9Sx5wJgS% literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter16/DataBinding/ListDataBinding.aspx b/Beginning ASP.NET 3.5/Chapter16/DataBinding/ListDataBinding.aspx new file mode 100644 index 0000000..b5ded9f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter16/DataBinding/ListDataBinding.aspx @@ -0,0 +1,26 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListDataBinding.aspx.cs" Inherits="ListDataBinding" %> + + + + + + Untitled Page + + + +
+
+ +

+ +
+ + +
+ + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter25/Ajax/WaitIndicator.aspx.cs b/Beginning ASP.NET 3.5/Chapter25/Ajax/WaitIndicator.aspx.cs new file mode 100644 index 0000000..b553111 --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter25/Ajax/WaitIndicator.aspx.cs @@ -0,0 +1,25 @@ +using System; +using System.Data; +using System.Configuration; +using System.Collections; +using System.Linq; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using System.Web.UI.HtmlControls; + +public partial class WaitIndicator : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } + + protected void cmdRefreshTime_Click(object sender, EventArgs e) + { + System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10)); + lblTime.Text = DateTime.Now.ToLongTimeString(); + } +} diff --git a/Beginning ASP.NET 3.5/Chapter25/Ajax/Web.config b/Beginning ASP.NET 3.5/Chapter25/Ajax/Web.config new file mode 100644 index 0000000..dfd800f --- /dev/null +++ b/Beginning ASP.NET 3.5/Chapter25/Ajax/Web.config @@ -0,0 +1,115 @@ + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Beginning ASP.NET 3.5/Chapter25/Ajax/ajax.jpg b/Beginning ASP.NET 3.5/Chapter25/Ajax/ajax.jpg new file mode 100644 index 0000000000000000000000000000000000000000..76c66544efcc62633be402f70582b4e3791d5eff GIT binary patch literal 19215 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 O()~M`;*hTfZ1^{ACs29- literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/Chapter25/Ajax/wait.gif b/Beginning ASP.NET 3.5/Chapter25/Ajax/wait.gif new file mode 100644 index 0000000000000000000000000000000000000000..d04f46319e009b6f177fb8db95cbcfe669693c50 GIT binary patch literal 1522 zcmZ?wbhEHbyvD%Ku$h73|Ns9F{y$jre9e+4OG?j`rkzQfIdi7tc1P{C+FWzF7-lm3 zV`O4L0*e2+{aizWogD*Qjr0td8G%xYKUr8g7`Pd9K*~VIGO(myIN`Z^uf^-LyZ z^rf)Q$yl{6=k>k)izS&-**K_%O#cbR2?>B#|YphjmX>Duo=hXO?M!=V6?%y1|`BqtmS5XlCI L0z~paRbUMOkygAC?W}LWEVEHE_W5H+p!&SH$*nI z8PbWpu#SDOG1sZxF*>}PF+TX5E|S2`Y#+QjBaQc(r>bq*4r_KnxB#ug^D}#DPi(_V zzF&=5CFV33y9{X;SaV@j%h&9opVn#=eLt~m;M-w{>af9j!sS?#nllmJGS=~!k_8JMvh;t+b>QFVSYE~K9tr$s-C3DgP1O~F!blg5cnLVgFQD01UNOz2Nt2NE$%B{auqYa`v z^LYQ;DqYPQHL^|_m+;2a&xQkZ9C|kDOdwq!VxAJKr(g)_2K)NH@?i_}XQI_MX1Vwd z_FBfh_bvQgPFwG!l+`9V$EjMx`TMc2i+lYDyj>y@oJ{Oe+pmEFWDN*#~WG9|IG*M#eKcAw5qW} z=I9$Pq_?X}Cpi#BH68727R@VW9)ICf;*6=1Ls3`GeiLL-=9!+}DXPQ-SJyOu{{SL> BE%pEa literal 0 HcmV?d00001 diff --git a/Beginning ASP.NET 3.5/InstNwnd.sql b/Beginning ASP.NET 3.5/InstNwnd.sql new file mode 100644 index 0000000000000000000000000000000000000000..20d8271a3556d2fc1044482e89485de38ca15d29 GIT binary patch literal 2115268 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ℜbuRz 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 z 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%0A!7!1#-=&%FJEo%4-tlWXw>TW^BO#`_m-Ust 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 'pubs' + raiserror('Error in InstPubs.SQL, ''USE pubs'' failed! Killing the SPID now.' + ,22,127) with log + +GO + +execute sp_dboption 'pubs' ,'trunc. log on chkpt.' ,'true' +GO + +execute sp_addtype id ,'varchar(11)' ,'NOT NULL' +execute sp_addtype tid ,'varchar(6)' ,'NOT NULL' +execute sp_addtype empid ,'char(9)' ,'NOT NULL' + +raiserror('Now at the create table section ....',0,1) + +GO + +CREATE TABLE authors +( + au_id id + + CHECK (au_id like '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]') + + CONSTRAINT UPKCL_auidind PRIMARY KEY CLUSTERED, + + au_lname varchar(40) NOT NULL, + au_fname varchar(20) NOT NULL, + + phone char(12) NOT NULL + + DEFAULT ('UNKNOWN'), + + address varchar(40) NULL, + city varchar(20) NULL, + state char(2) NULL, + + zip char(5) NULL + + CHECK (zip like '[0-9][0-9][0-9][0-9][0-9]'), + + contract bit NOT NULL +) + +GO + +CREATE TABLE publishers +( + pub_id char(4) NOT NULL + + CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED + + CHECK (pub_id in ('1389', '0736', '0877', '1622', '1756') + OR pub_id like '99[0-9][0-9]'), + + pub_name varchar(40) NULL, + city varchar(20) NULL, + state char(2) NULL, + + country varchar(30) NULL + + DEFAULT('USA') +) + +GO + +CREATE TABLE titles +( + title_id tid + + CONSTRAINT UPKCL_titleidind PRIMARY KEY CLUSTERED, + + title varchar(80) NOT NULL, + + type char(12) NOT NULL + + DEFAULT ('UNDECIDED'), + + pub_id char(4) NULL + + REFERENCES publishers(pub_id), + + price money NULL, + advance money NULL, + royalty int NULL, + ytd_sales int NULL, + notes varchar(200) NULL, + + pubdate datetime NOT NULL + + DEFAULT (getdate()) +) + +GO + +CREATE TABLE titleauthor +( + au_id id + + REFERENCES authors(au_id), + + title_id tid + + REFERENCES titles(title_id), + + au_ord tinyint NULL, + royaltyper int NULL, + + + CONSTRAINT UPKCL_taind PRIMARY KEY CLUSTERED(au_id, title_id) +) + +GO + +CREATE TABLE stores +( + stor_id char(4) NOT NULL + + CONSTRAINT UPK_storeid PRIMARY KEY CLUSTERED, + + stor_name varchar(40) NULL, + stor_address varchar(40) NULL, + city varchar(20) NULL, + state char(2) NULL, + zip char(5) NULL +) + +GO + +CREATE TABLE sales +( + stor_id char(4) NOT NULL + + REFERENCES stores(stor_id), + + ord_num varchar(20) NOT NULL, + ord_date datetime NOT NULL, + qty smallint NOT NULL, + payterms varchar(12) NOT NULL, + + title_id tid + + REFERENCES titles(title_id), + + + CONSTRAINT UPKCL_sales PRIMARY KEY CLUSTERED (stor_id, ord_num, title_id) +) + +GO + +CREATE TABLE roysched +( + title_id tid + + REFERENCES titles(title_id), + + lorange int NULL, + hirange int NULL, + royalty int NULL +) + +GO + +CREATE TABLE discounts +( + discounttype varchar(40) NOT NULL, + + stor_id char(4) NULL + + REFERENCES stores(stor_id), + + lowqty smallint NULL, + highqty smallint NULL, + discount dec(4,2) NOT NULL +) + +GO + +CREATE TABLE jobs +( + job_id smallint IDENTITY(1,1) + + PRIMARY KEY CLUSTERED, + + job_desc varchar(50) NOT NULL + + DEFAULT 'New Position - title not formalized yet', + + min_lvl tinyint NOT NULL + + CHECK (min_lvl >= 10), + + max_lvl tinyint NOT NULL + + CHECK (max_lvl <= 250) +) + +GO + +CREATE TABLE pub_info +( + pub_id char(4) NOT NULL + + REFERENCES publishers(pub_id) + + CONSTRAINT UPKCL_pubinfo PRIMARY KEY CLUSTERED, + + logo image NULL, + pr_info text NULL +) + +GO + +CREATE TABLE employee +( + emp_id empid + + CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED + + CONSTRAINT CK_emp_id CHECK (emp_id LIKE + '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][FM]' or + emp_id LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]'), + + fname varchar(20) NOT NULL, + minit char(1) NULL, + lname varchar(30) NOT NULL, + + job_id smallint NOT NULL + + DEFAULT 1 + + REFERENCES jobs(job_id), + + job_lvl tinyint + + DEFAULT 10, + + pub_id char(4) NOT NULL + + DEFAULT ('9952') + + REFERENCES publishers(pub_id), + + hire_date datetime NOT NULL + + DEFAULT (getdate()) +) + +GO + +raiserror('Now at the create trigger section ...',0,1) + +GO + +CREATE TRIGGER employee_insupd +ON employee +FOR insert, UPDATE +AS +--Get the range of level for this job type from the jobs table. +declare @min_lvl tinyint, + @max_lvl tinyint, + @emp_lvl tinyint, + @job_id smallint +select @min_lvl = min_lvl, + @max_lvl = max_lvl, + @emp_lvl = i.job_lvl, + @job_id = i.job_id +from employee e, jobs j, inserted i +where e.emp_id = i.emp_id AND i.job_id = j.job_id +IF (@job_id = 1) and (@emp_lvl <> 10) +begin + raiserror ('Job id 1 expects the default level of 10.',16,1) + ROLLBACK TRANSACTION +end +ELSE +IF NOT (@emp_lvl BETWEEN @min_lvl AND @max_lvl) +begin + raiserror ('The level for job_id:%d should be between %d and %d.', + 16, 1, @job_id, @min_lvl, @max_lvl) + ROLLBACK TRANSACTION +end + +GO + +raiserror('Now at the inserts to authors ....',0,1) + +GO + +insert authors + values('409-56-7008', 'Bennet', 'Abraham', '415 658-9932', + '6223 Bateman St.', 'Berkeley', 'CA', '94705', 1) +insert authors + values('213-46-8915', 'Green', 'Marjorie', '415 986-7020', + '309 63rd St. #411', 'Oakland', 'CA', '94618', 1) +insert authors + values('238-95-7766', 'Carson', 'Cheryl', '415 548-7723', + '589 Darwin Ln.', 'Berkeley', 'CA', '94705', 1) +insert authors + values('998-72-3567', 'Ringer', 'Albert', '801 826-0752', + '67 Seventh Av.', 'Salt Lake City', 'UT', '84152', 1) +insert authors + values('899-46-2035', 'Ringer', 'Anne', '801 826-0752', + '67 Seventh Av.', 'Salt Lake City', 'UT', '84152', 1) +insert authors + values('722-51-5454', 'DeFrance', 'Michel', '219 547-9982', + '3 Balding Pl.', 'Gary', 'IN', '46403', 1) +insert authors + values('807-91-6654', 'Panteley', 'Sylvia', '301 946-8853', + '1956 Arlington Pl.', 'Rockville', 'MD', '20853', 1) +insert authors + values('893-72-1158', 'McBadden', 'Heather', + '707 448-4982', '301 Putnam', 'Vacaville', 'CA', '95688', 0) +insert authors + values('724-08-9931', 'Stringer', 'Dirk', '415 843-2991', + '5420 Telegraph Av.', 'Oakland', 'CA', '94609', 0) +insert authors + values('274-80-9391', 'Straight', 'Dean', '415 834-2919', + '5420 College Av.', 'Oakland', 'CA', '94609', 1) +insert authors + values('756-30-7391', 'Karsen', 'Livia', '415 534-9219', + '5720 McAuley St.', 'Oakland', 'CA', '94609', 1) +insert authors + values('724-80-9391', 'MacFeather', 'Stearns', '415 354-7128', + '44 Upland Hts.', 'Oakland', 'CA', '94612', 1) +insert authors + values('427-17-2319', 'Dull', 'Ann', '415 836-7128', + '3410 Blonde St.', 'Palo Alto', 'CA', '94301', 1) +insert authors + values('672-71-3249', 'Yokomoto', 'Akiko', '415 935-4228', + '3 Silver Ct.', 'Walnut Creek', 'CA', '94595', 1) +insert authors + values('267-41-2394', 'O''Leary', 'Michael', '408 286-2428', + '22 Cleveland Av. #14', 'San Jose', 'CA', '95128', 1) +insert authors + values('472-27-2349', 'Gringlesby', 'Burt', '707 938-6445', + 'PO Box 792', 'Covelo', 'CA', '95428', 3) +insert authors + values('527-72-3246', 'Greene', 'Morningstar', '615 297-2723', + '22 Graybar House Rd.', 'Nashville', 'TN', '37215', 0) +insert authors + values('172-32-1176', 'White', 'Johnson', '408 496-7223', + '10932 Bigge Rd.', 'Menlo Park', 'CA', '94025', 1) +insert authors + values('712-45-1867', 'del Castillo', 'Innes', '615 996-8275', + '2286 Cram Pl. #86', 'Ann Arbor', 'MI', '48105', 1) +insert authors + values('846-92-7186', 'Hunter', 'Sheryl', '415 836-7128', + '3410 Blonde St.', 'Palo Alto', 'CA', '94301', 1) +insert authors + values('486-29-1786', 'Locksley', 'Charlene', '415 585-4620', + '18 Broadway Av.', 'San Francisco', 'CA', '94130', 1) +insert authors + values('648-92-1872', 'Blotchet-Halls', 'Reginald', '503 745-6402', + '55 Hillsdale Bl.', 'Corvallis', 'OR', '97330', 1) +insert authors + values('341-22-1782', 'Smith', 'Meander', '913 843-0462', + '10 Mississippi Dr.', 'Lawrence', 'KS', '66044', 0) + +GO + +raiserror('Now at the inserts to publishers ....',0,1) + +GO + +insert publishers values('0736', 'New Moon Books', 'Boston', 'MA', 'USA') +insert publishers values('0877', 'Binnet & Hardley', 'Washington', 'DC', 'USA') +insert publishers values('1389', 'Algodata Infosystems', 'Berkeley', 'CA', 'USA') +insert publishers values('9952', 'Scootney Books', 'New York', 'NY', 'USA') +insert publishers values('1622', 'Five Lakes Publishing', 'Chicago', 'IL', 'USA') +insert publishers values('1756', 'Ramona Publishers', 'Dallas', 'TX', 'USA') +insert publishers values('9901', 'GGG&G', 'Mnchen', NULL, 'Germany') +insert publishers values('9999', 'Lucerne Publishing', 'Paris', NULL, 'France') + +GO + +raiserror('Now at the inserts to pub_info ....',0,1) + +GO + +insert pub_info values('0736', 0x474946383961D3001F00B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000D3001F004004FFF0C949ABBD38EBCDBBFF60288E245001686792236ABAB03BC5B055B3F843D3B99DE2AB532A36FB15253B19E5A6231A934CA18CB75C1191D69BF62AAD467F5CF036D8243791369F516ADEF9304AF8F30A3563D7E54CFC04BF24377B5D697E6451333D8821757F898D8E8F1F76657877907259755E5493962081798D9F8A846D9B4A929385A7A5458CA0777362ACAF585E6C6A84AD429555BAA9A471A89D8E8BA2C3C7C82DC9C8AECBCECF1EC2D09143A66E80D3D9BC2C41D76AD28FB2CD509ADAA9AAC62594A3DF81C65FE0BDB5B0CDF4E276DEF6DD78EF6B86FA6C82C5A2648A54AB6AAAE4C1027864DE392E3AF4582BF582DFC07D9244ADA2480BD4C6767BFF32AE0BF3EF603B3907490A4427CE21A7330A6D0584B810664D7F383FA25932488FB96D0F37BDF9491448D1A348937A52CAB4A9D3784EF5E58B4A5545D54BC568FABC9A68DD526ED0A6B8AA17331BD91E5AD9D1D390CED23D88F54A3ACB0A955ADDAD9A50B50D87296E3EB9C76A7CDAABC86B2460040DF34D3995515AB9FF125F1AFA0DAB20A0972382CCB9F9E5AEBC368B21EEDB66EDA15F1347BE2DFDEBB44A7B7C6889240D9473EB73322F4E8D8DBBE14D960B6519BCE5724BB95789350E97EA4BF3718CDD64068D751A261D8B1539D6DCDE3C37F68E1FB58E5DCED8A44477537049852EFD253CEE38C973B7E9D97A488C2979FB936FBAFF2CF5CB79E35830400C31860F4A9BE925D4439F81B6A073BEF1575F593C01A25B26127255D45D4A45B65B851A36C56154678568A20E1100003B, +'This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts. + +This is sample text data for New Moon Books, publisher 0736 in the pubs database. New Moon Books is located in Boston, Massachusetts.') + +insert pub_info values('0877', 0x4749463839618B002F00B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C000000008B002F004004FFF0C949ABBD38EBCDBBFFA0048464089CE384A62BD596309CC6F4F58A287EBA79ED73B3D26A482C1A8FC8A47249FCCD76BC1F3058D94135579C9345053D835768560CFE6A555D343A1B6D3FC6DC2A377E66DBA5F8DBEBF6EEE1FF2A805B463A47828269871F7A3D7C7C8A3E899093947F666A756567996E6C519E167692646E7D9C98A42295ABAC24A092AD364C737EB15EB61B8E8DB58FB81DB0BE8C6470A0BE58C618BAC365C5C836CEA1BCBBC4C0D0AAD6D14C85CDD86FDDDFAB5F43A580DCB519A25B9BAE989BC3EEA9A7EBD9BF54619A7DF8BBA87475EDA770D6C58B968C59A27402FB99E2378FC7187010D5558948B15CC58B4E20CE9A762E62B558CAB86839FC088D24AB90854662BCD60D653E832BBD7924F49226469327FDEC91C6AD2538972E6FFEE429720D4E63472901251A33A9D28DB47A5A731A7325D56D50B36ADDAA2463D5AF1EAE82F5F84FAA946656AA21AC31D0C4BF85CBA87912D6D194D4B535C5DDDBA93221CB226D022E9437D89C594305FD321C0CB7DFA5C58223036E088F3139B9032563DD0BE66D2ACD8B2BCB9283CEDEE3C6A53EE39BA7579A62C1294917DC473035E0B9E3183F9A3BB6F7ABDE608B018800003B, +'This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C. + +This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C. + +This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C. + +This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C. + +This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.') + +insert pub_info values('1389', 0x474946383961C2001D00B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000C2001D004004FFF0C949ABBD38EBCDBBFF60288E1C609E2840AE2C969E6D2CCFB339D90F2CE1F8AEE6BC9FEF26EC01413AA3F2D76BAA96C7A154EA7CC29C449AC7A8ED7A2FDC2FED25149B29E4D479FD55A7CBD931DC35CFA4916171BEFDAABC51546541684C8285847151537F898A588D89806045947491757B6C9A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A95A6A3E64169923B0901A775B7566B25D7F8C888A5150BE7B8F93847D8DC3C07983BEBDC1878BCFAF6F44BBD0AD71C9CBD653BFD5CEC7D1C3DFDB8197D8959CB9AAB8B7EBEEEFF0BA92F1B6B5F4A0F6F776D3FA9EBCFD748C01DCB4AB5DBF7C03CF1454070F61423D491C326BA18E211081250C7AB12867619825F37F2ECE1168AC242B6A274556D121D28FA46C11E78564C5B295308F21BBF5CAD6CCE52C7018813932C4ED5C517346B7C1C2683368349D49A19D0439D31538A452A916135A0B19A59AAB9E6A835A0EABD00E5CD11D1D478C1C59714053AA4C4955AB4B9956879AB497F62E1CBA2373DA25B752239F8787119390AB5806C74E1100003B, +'This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California. + +This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California.') + +insert pub_info values('1622', 0x474946383961F5003400B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000F50034004004FFF0C949ABBD38EBCDBBFF60288E64D90166AA016CEBBEB02ACF746D67E82DC2ACEEFFC0A02997B31027C521EF25698D8E42230E049D3E8AD8537385BC4179DB6B574C26637BE58BF38A1EB393DF2CE55CA52731F77918BE9FAFCD6180817F697F5F6E6C7A836D62876A817A79898A7E31524D708E7299159C9456929F9044777C6575A563A68E827D9D4C8D334BB3B051B6B7B83A8490B91EB4B3BDC1C251A1C24BC3C8C9C8C5C4BFCCCAD0D135ACC36B2E3BBCB655AD1CDB8F6921DEB8D48AA9ADA46046D7E0DC829B9D98E9988878D9AAE5AEF875BC6DEFF7E7A35C9943F18CCA3175C0A4295C48625F3B8610234A0C17D159C289189515CC7531A3C7891BFF9B59FA4812634820F24AAA94882EA50D8BBB3E8813598B8A3D7C0D6F12CB8710E5BA7536D9ED3C458F8B509CF17CE94CEA658F254D944889528306E83C245089629DDA4F8BD65885049ACBB7ADAB2A5364AFDAF344902752409A6085FA39105EBB3C2DAB2E52FA8611B7ACFA060956CB1370598176DB3E74FB956CCCA77207BB6B8CAAAADEA3FFBE01A48CD871D65569C37E25A458C5C9572E57AADE59F7F40A98B456CB36560F730967B3737B74ADBBB7EFDABF830BE70B11F6C8E1C82F31345E33B9F3A5C698FB7D4E9D779083D4B313D7985ABB77E0C9B07F1F0F3EFA71F2E8ED56EB98BEBD7559306FC72C6995EA7499F3B5DDA403FF17538AB6FD20C9FF7D463D531681971888E0104E45069D7C742D58DB7B29B45454811B381420635135B5D838D6E487612F876D98D984B73D2820877DFD871523F5E161D97DD7FCB4C82E31BEC8176856D9D8487D95E1E5D711401AE2448EF11074E47E9D69359382E8A8871391880C28E5861636399950FEFCA55E315D8279255C2C6AA89899B68588961C5B82C366693359F1CA89ACACB959971D76F6E6607B6E410E9D57B1A9196A52BDD56636CC08BA519C5E1EDA8743688906DA9D53F2E367999656A96292E2781397A6264E62A04E25FE49A59354696958409B11F527639DEAC84E7795553A9AACA85C68E8977D2A7919A5A7F83329A46F0D79698BF60D98688CCC118A6C3F8F38E6D89C8C12F635E49145F6132D69DCCE684725FC0546C3B40875D79E70A5867A8274E69E8BAEAC1FEEC02E92EE3AA7ADA015365BEFBE83F2EB6F351100003B, +'This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois. + +This is sample text data for Five Lakes Publishing, publisher 1622 in the pubs database. Five Lakes Publishing is located in Chicago, Illinois.') + +insert pub_info values('1756', 0x474946383961E3002500B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000E30025004004FFF0C949ABBD38EBCDBBFF60288E240858E705A4D2EA4E6E0CC7324DD1EB9CDBBAFCE1AC878DE7ABBD84476452C963369F2F288E933A595B404DB27834E67A5FEC37ACEC517D4EB24E5C8D069966361A5E8ED3C3DCA5AA54B9B2AE2D423082817F848286898386858754887B8A8D939094947E918B7D8780959E9D817C18986FA2A6A75A7B22A59B378E1DACAEB18F1940B6A8B8A853727AB5BD4E76676A37BFB9AF2A564D6BC0776E635BCE6DCFD2C3C873716879D4746C6053DA76E0DAB3A133D6D5B290929F9CEAEDEB6FA0C435EF9E97F59896EC28EEFA9DFF69A21C1BB4CA1E3E63084DB42B970FD6407D05C9E59298B0A2C58B18337AA0E88DA3468DC3FFD0692187A7982F5F2271B152162DE54795CEB0F0DAF8EBDA2A932F1FF203B38C484B6ED07674194ACD639679424B4EDB36279B4D3852FE1095266743955138C5209ADA6D5CB26DCDFC644DD351EACF804BCD32421A562DB6965F25AADD11B056BD7BA436C903E82A1D4A3D024769BAE777B0BB7887F51A0E022E9589BCFCE0DD6527597223C4917502ACBCF8D5E6C49F0B6FA60751A7C2748A3EE7DD6B70B5628F9A5873C6DB5936E57EB843C726043B95EBDE394F3584EC7096ED8DA60D86001EBCB9F3E72F99439F0E7DEC7297BA84D9924EFDB11A65566B8EFB510C7CC258DBB7779F7834A9756E6C97D114F95E5429F13CE5F7F9AAF51C996928604710FF544AFDC79717C10CD85157C6EDD75F7EB49C81D45C5EA9674E5BBBA065941BFB45F3D62D5E99E11488516568A15D1292255F635E8045E0520F3E15A0798DB5C5A08105EE52E3884C05255778E6F5C4A287CCB4D84D1D41CE08CD913C56656482EAEDE8E38D71B974553C199EC324573C3669237C585588E52D1ACE049F85521648659556CD83445D27C9F4D68501CE580E31748ED4948C0E3E88959B257C87E39D0A8EC5D812559234996A9EE5B6E864FE31BA5262971DE40FA5B75D9A487A9A79975C6AB5DD06EA6CCA9DB94FA6A1568AD8A4C33DBA6A5995EE5450AC0AA24A9C6DBAE9F6883CB48976D0ABA8D90AA9A88D6246C2ABA3FE8A1B43CA229B9C58AFC11E071AB1D1BE366DB5C9AE85DCA48595466B83AC95C61DA60D1146EEB3BB817ADA40A08CFBDBB2EB9972EB6EDB66D26D71768D5B2B1FEFC65B11AFA5FA96C93AF50AA6AFBEFE263C1DC0FCA2AB8AC210472C310A1100003B, +'This is sample text data for Ramona Publishers, publisher 1756 in the pubs database. Ramona Publishers is located in Dallas, Texas.') + +insert pub_info values('9901', 0x4749463839615D002200B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C000000005D0022004004FFF0C949ABBD38EBCDFB03DF078C249895A386AA68BB9E6E0ACE623ABD1BC9E9985DFFB89E8E366BED782C5332563ABA4245A6744AAD5AAF4D2276CBED5EA1D026C528B230CD38B2C92721D78CC4772526748F9F611EB28DE7AFE25E818283604A1E8788898A7385838E8F55856F6C2C1D86392F6B9730708D6C5477673758A3865E92627E94754E173697A6A975809368949BB2AE7B9A6865AA734F80A2A17DA576AA5BB667C290CDCE4379CFD2CE9ED3D6A7CCD7DAA4D9C79341C8B9DF5FC052A8DEBA9BB696767B9C7FD5B8BBF23EABB9706BCAE5F05AB7E6C4C7488DDAF7251BC062530EFE93638C5B3580ECD4951312C217C425E73E89D38709D79D810D393BD20A528CE0AA704AA2D4D3082E583C89BD2C2D720753E1C8922697D44CF6AE53BF6D4041750B4AD467C54548932A1D7374A9D3A789004400003B, +'This is sample text data for GGG&G, publisher 9901 in the pubs database. GGG&G is located in München, Germany.') + +insert pub_info values('9952', 0x47494638396107012800B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000070128004004FFF0C949ABBD38EBCDBBFF60288E6469660005AC2C7BB56D05A7D24C4F339E3F765FC716980C3824F28418E4D1A552DA8ACCA5517A7B526F275912690D2A9BD11D14AB8B8257E7E9776BDEE452C2279C47A5CBEDEF2B3C3FBF9FC85981821D7D76868588878A898C8B838F1C8D928E733890829399949B979D9E9FA074A1A3A4A5A6A7458F583E69803F53AF4C62AD5E6DB13B6B3DAEAC6EBA64B365B26BB7ABBEB5C07FB428BCC4C8C1CCC7BBB065637C7A9B7BBE8CDADBDA8B7C31D9E1D88E2FA89E9AE9E49AE7EDA48DA2EEF2F3F4F597AEF6F9FAFBFC805D6CD28C0164C64D18BE3AAD88D87AA5C1DBC07FD59CE54293F0E0882AC39ED9CA2886E3308FB3FF262EBC726D591823204F2E0C09A4A3B32CFEACBC24198D86C48FD3E208D43832E3C0671A2D89737167281AA333219AC048D061499A3C83BEC8090BD84E5A99DE808B730DE9516B727CE85AE7C122BF73EAD29255CB76ADDBB6EC549C8504F7AD5DB37343A98D97576EDDBF7CFB0AEE8457EF5D4E83132BAEB1B8B1E3C749204B9EACB830E5CB984DE1F339A4E1CC88C93CB7D989D72234D1D3A672FEF85055C483C80A06742ADB664F3563119E417D5A8F52DFB1512AEC5D82E9C8662A477FB19A72B6F2E714413F8D0654AA75A8C4C648FDBC346ACDCD5487AFC439BE8BC8E8AA7F6BD77D2B7DF4E6C5882E57DFBDE2F56AEE6D87DFB8BFE06BE7E8F1C6CBCE4D2DC15751803C5956567EFA1D47A041E5F1176183CC1D571D21C2850396565CF5B1D5571D8AC21D08E099A15E85269E87207B1736B31E6FE620324E582116F5215178C86763518A9068DF7FE8C9C6207DCD0104A47B6B717388901EFA27238E3482454E43BB61E8D388F7FD44DD32473E79D43A527633232561E6F86536660256891699D175989A6F1A020A9C75C9D5E68274C619D79D91B5C5189F7906CA67297129D88F9E881A3AA83E8AB623E85E8B0EDAE89C892216E9A584B80318A69C7E3269A7A046FA69A8A4B6094004003B, +'This is sample text data for Scootney Books, publisher 9952 in the pubs database. Scootney Books is located in New York City, New York.') + +insert pub_info values('9999', 0x474946383961A9002400B30F00000000800000008000808000000080800080008080808080C0C0C0FF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF21F9040100000F002C00000000A90024004004FFF0C949ABBD38EBCDBBFF60F8011A609E67653EA8D48A702CCFF44566689ED67CEFFF23D58E7513B686444A6EA26B126FC8E74AC82421A7ABE5F4594D61B7BBF0D6F562719A68A07ACDC6389925749AFC6EDBEFBCA24D3E96E2FF803D7A1672468131736E494A8B5C848D8633834B916E598B657E4A83905F7D9B7B56986064A09BA2A68D63603A2E717C9487B2B3209CA7AD52594751B4BD80B65D75B799BEC5BFAF7CC6CACB6638852ACC409F901BD33EB6BCCDC1D1CEA9967B23C082C3709662A69FA4A591E7AE84D87A5FA0AB502F43AC5D74EB9367B0624593FA5CB101ED144173E5F4315AE8485B4287FCBE39E446B1624173FEAC59DC2809594623D9C3388A54E4ACD59C642353E2F098E919319530DD61C405C7CBCB9831C5E5A2192C244E983A3FFE1CDA21282CA248ABB18C25336952A389D689E489B0D24483243B66CD8775A315801AA5A60A6B2DAC074E3741D6BBA8902BA687E9A6D1A3B6D6D15C7460C77AA3E3E556D79EBAF4AAAAB2CFCF578671DFDE657598305D51F7BE5E5A25361ED3388EED0A84B2B7535D6072C1D62DB5588BE5CCA5B1BDA377B99E3CBE9EDA31944A951ADF7DB15263A1429B37BB7E429D8EC4D754B87164078F2B87012002003B, +'This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France. + +This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France. + +This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France. + +This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France.') +GO + + +raiserror('Now at the inserts to titles ....',0,1) + +GO + +insert titles values ('PC8888', 'Secrets of Silicon Valley', 'popular_comp', '1389', +$20.00, $8000.00, 10, 4095, +'Muckraking reporting on the world''s largest computer hardware and software manufacturers.', +'06/12/94') + +insert titles values ('BU1032', 'The Busy Executive''s Database Guide', 'business', +'1389', $19.99, $5000.00, 10, 4095, +'An overview of available database systems with emphasis on common business applications. Illustrated.', +'06/12/91') + +insert titles values ('PS7777', 'Emotional Security: A New Algorithm', 'psychology', +'0736', $7.99, $4000.00, 10, 3336, +'Protecting yourself and your loved ones from undue emotional stress in the modern world. Use of computer and nutritional aids emphasized.', +'06/12/91') + +insert titles values ('PS3333', 'Prolonged Data Deprivation: Four Case Studies', +'psychology', '0736', $19.99, $2000.00, 10, 4072, +'What happens when the data runs dry? Searching evaluations of information-shortage effects.', +'06/12/91') + +insert titles values ('BU1111', 'Cooking with Computers: Surreptitious Balance Sheets', +'business', '1389', $11.95, $5000.00, 10, 3876, +'Helpful hints on how to use your electronic resources to the best advantage.', +'06/09/91') + +insert titles values ('MC2222', 'Silicon Valley Gastronomic Treats', 'mod_cook', '0877', +$19.99, $0.00, 12, 2032, +'Favorite recipes for quick, easy, and elegant meals.', +'06/09/91') + +insert titles values ('TC7777', 'Sushi, Anyone?', 'trad_cook', '0877', $14.99, $8000.00, +10, 4095, +'Detailed instructions on how to make authentic Japanese sushi in your spare time.', +'06/12/91') + +insert titles values ('TC4203', 'Fifty Years in Buckingham Palace Kitchens', 'trad_cook', +'0877', $11.95, $4000.00, 14, 15096, +'More anecdotes from the Queen''s favorite cook describing life among English royalty. Recipes, techniques, tender vignettes.', +'06/12/91') + +insert titles values ('PC1035', 'But Is It User Friendly?', 'popular_comp', '1389', +$22.95, $7000.00, 16, 8780, +'A survey of software for the naive user, focusing on the ''friendliness'' of each.', +'06/30/91') + +insert titles values('BU2075', 'You Can Combat Computer Stress!', 'business', '0736', +$2.99, $10125.00, 24, 18722, +'The latest medical and psychological techniques for living with the electronic office. Easy-to-understand explanations.', +'06/30/91') + +insert titles values('PS2091', 'Is Anger the Enemy?', 'psychology', '0736', $10.95, +$2275.00, 12, 2045, +'Carefully researched study of the effects of strong emotions on the body. Metabolic charts included.', +'06/15/91') + +insert titles values('PS2106', 'Life Without Fear', 'psychology', '0736', $7.00, $6000.00, +10, 111, +'New exercise, meditation, and nutritional techniques that can reduce the shock of daily interactions. Popular audience. Sample menus included, exercise video available separately.', +'10/05/91') + +insert titles values('MC3021', 'The Gourmet Microwave', 'mod_cook', '0877', $2.99, +$15000.00, 24, 22246, +'Traditional French gourmet recipes adapted for modern microwave cooking.', +'06/18/91') + +insert titles values('TC3218', 'Onions, Leeks, and Garlic: Cooking Secrets of the Mediterranean', +'trad_cook', '0877', $20.95, $7000.00, 10, 375, +'Profusely illustrated in color, this makes a wonderful gift book for a cuisine-oriented friend.', +'10/21/91') + +insert titles (title_id, title, pub_id) values('MC3026', +'The Psychology of Computer Cooking', '0877') + +insert titles values ('BU7832', 'Straight Talk About Computers', 'business', '1389', +$19.99, $5000.00, 10, 4095, +'Annotated analysis of what computers can do for you: a no-hype guide for the critical user.', +'06/22/91') + +insert titles values('PS1372', 'Computer Phobic AND Non-Phobic Individuals: Behavior Variations', +'psychology', '0877', $21.59, $7000.00, 10, 375, +'A must for the specialist, this book examines the difference between those who hate and fear computers and those who don''t.', +'10/21/91') + +insert titles (title_id, title, type, pub_id, notes) values('PC9999', 'Net Etiquette', +'popular_comp', '1389', 'A must-read for computer conferencing.') + +GO + +raiserror('Now at the inserts to titleauthor ....',0,1) + +GO + +insert titleauthor values('409-56-7008', 'BU1032', 1, 60) +insert titleauthor values('486-29-1786', 'PS7777', 1, 100) +insert titleauthor values('486-29-1786', 'PC9999', 1, 100) +insert titleauthor values('712-45-1867', 'MC2222', 1, 100) +insert titleauthor values('172-32-1176', 'PS3333', 1, 100) +insert titleauthor values('213-46-8915', 'BU1032', 2, 40) +insert titleauthor values('238-95-7766', 'PC1035', 1, 100) +insert titleauthor values('213-46-8915', 'BU2075', 1, 100) +insert titleauthor values('998-72-3567', 'PS2091', 1, 50) +insert titleauthor values('899-46-2035', 'PS2091', 2, 50) +insert titleauthor values('998-72-3567', 'PS2106', 1, 100) +insert titleauthor values('722-51-5454', 'MC3021', 1, 75) +insert titleauthor values('899-46-2035', 'MC3021', 2, 25) +insert titleauthor values('807-91-6654', 'TC3218', 1, 100) +insert titleauthor values('274-80-9391', 'BU7832', 1, 100) +insert titleauthor values('427-17-2319', 'PC8888', 1, 50) +insert titleauthor values('846-92-7186', 'PC8888', 2, 50) +insert titleauthor values('756-30-7391', 'PS1372', 1, 75) +insert titleauthor values('724-80-9391', 'PS1372', 2, 25) +insert titleauthor values('724-80-9391', 'BU1111', 1, 60) +insert titleauthor values('267-41-2394', 'BU1111', 2, 40) +insert titleauthor values('672-71-3249', 'TC7777', 1, 40) +insert titleauthor values('267-41-2394', 'TC7777', 2, 30) +insert titleauthor values('472-27-2349', 'TC7777', 3, 30) +insert titleauthor values('648-92-1872', 'TC4203', 1, 100) + +GO + +raiserror('Now at the inserts to stores ....',0,1) + +GO + +insert stores values('7066','Barnum''s','567 Pasadena Ave.','Tustin','CA','92789') +insert stores values('7067','News & Brews','577 First St.','Los Gatos','CA','96745') +insert stores values('7131','Doc-U-Mat: Quality Laundry and Books', + '24-A Avogadro Way','Remulade','WA','98014') +insert stores values('8042','Bookbeat','679 Carson St.','Portland','OR','89076') +insert stores values('6380','Eric the Read Books','788 Catamaugus Ave.', + 'Seattle','WA','98056') +insert stores values('7896','Fricative Bookshop','89 Madison St.','Fremont','CA','90019') + +GO + +raiserror('Now at the inserts to sales ....',0,1) + +GO + +insert sales values('7066', 'QA7442.3', '09/13/94', 75, 'ON invoice','PS2091') +insert sales values('7067', 'D4482', '09/14/94', 10, 'Net 60','PS2091') +insert sales values('7131', 'N914008', '09/14/94', 20, 'Net 30','PS2091') +insert sales values('7131', 'N914014', '09/14/94', 25, 'Net 30','MC3021') +insert sales values('8042', '423LL922', '09/14/94', 15, 'ON invoice','MC3021') +insert sales values('8042', '423LL930', '09/14/94', 10, 'ON invoice','BU1032') +insert sales values('6380', '722a', '09/13/94', 3, 'Net 60','PS2091') +insert sales values('6380', '6871', '09/14/94', 5, 'Net 60','BU1032') +insert sales values('8042','P723', '03/11/93', 25, 'Net 30', 'BU1111') +insert sales values('7896','X999', '02/21/93', 35, 'ON invoice', 'BU2075') +insert sales values('7896','QQ2299', '10/28/93', 15, 'Net 60', 'BU7832') +insert sales values('7896','TQ456', '12/12/93', 10, 'Net 60', 'MC2222') +insert sales values('8042','QA879.1', '5/22/93', 30, 'Net 30', 'PC1035') +insert sales values('7066','A2976', '5/24/93', 50, 'Net 30', 'PC8888') +insert sales values('7131','P3087a', '5/29/93', 20, 'Net 60', 'PS1372') +insert sales values('7131','P3087a', '5/29/93', 25, 'Net 60', 'PS2106') +insert sales values('7131','P3087a', '5/29/93', 15, 'Net 60', 'PS3333') +insert sales values('7131','P3087a', '5/29/93', 25, 'Net 60', 'PS7777') +insert sales values('7067','P2121', '6/15/92', 40, 'Net 30', 'TC3218') +insert sales values('7067','P2121', '6/15/92', 20, 'Net 30', 'TC4203') +insert sales values('7067','P2121', '6/15/92', 20, 'Net 30', 'TC7777') + +GO + +raiserror('Now at the inserts to roysched ....',0,1) + +GO + +insert roysched values('BU1032', 0, 5000, 10) +insert roysched values('BU1032', 5001, 50000, 12) +insert roysched values('PC1035', 0, 2000, 10) +insert roysched values('PC1035', 2001, 3000, 12) +insert roysched values('PC1035', 3001, 4000, 14) +insert roysched values('PC1035', 4001, 10000, 16) +insert roysched values('PC1035', 10001, 50000, 18) +insert roysched values('BU2075', 0, 1000, 10) +insert roysched values('BU2075', 1001, 3000, 12) +insert roysched values('BU2075', 3001, 5000, 14) + +GO + +insert roysched values('BU2075', 5001, 7000, 16) +insert roysched values('BU2075', 7001, 10000, 18) +insert roysched values('BU2075', 10001, 12000, 20) +insert roysched values('BU2075', 12001, 14000, 22) +insert roysched values('BU2075', 14001, 50000, 24) +insert roysched values('PS2091', 0, 1000, 10) +insert roysched values('PS2091', 1001, 5000, 12) +insert roysched values('PS2091', 5001, 10000, 14) +insert roysched values('PS2091', 10001, 50000, 16) +insert roysched values('PS2106', 0, 2000, 10) + +GO + +insert roysched values('PS2106', 2001, 5000, 12) +insert roysched values('PS2106', 5001, 10000, 14) +insert roysched values('PS2106', 10001, 50000, 16) +insert roysched values('MC3021', 0, 1000, 10) +insert roysched values('MC3021', 1001, 2000, 12) +insert roysched values('MC3021', 2001, 4000, 14) +insert roysched values('MC3021', 4001, 6000, 16) +insert roysched values('MC3021', 6001, 8000, 18) +insert roysched values('MC3021', 8001, 10000, 20) +insert roysched values('MC3021', 10001, 12000, 22) + +GO + +insert roysched values('MC3021', 12001, 50000, 24) +insert roysched values('TC3218', 0, 2000, 10) +insert roysched values('TC3218', 2001, 4000, 12) +insert roysched values('TC3218', 4001, 6000, 14) +insert roysched values('TC3218', 6001, 8000, 16) +insert roysched values('TC3218', 8001, 10000, 18) +insert roysched values('TC3218', 10001, 12000, 20) +insert roysched values('TC3218', 12001, 14000, 22) +insert roysched values('TC3218', 14001, 50000, 24) +insert roysched values('PC8888', 0, 5000, 10) +insert roysched values('PC8888', 5001, 10000, 12) + +GO + +insert roysched values('PC8888', 10001, 15000, 14) +insert roysched values('PC8888', 15001, 50000, 16) +insert roysched values('PS7777', 0, 5000, 10) +insert roysched values('PS7777', 5001, 50000, 12) +insert roysched values('PS3333', 0, 5000, 10) +insert roysched values('PS3333', 5001, 10000, 12) +insert roysched values('PS3333', 10001, 15000, 14) +insert roysched values('PS3333', 15001, 50000, 16) +insert roysched values('BU1111', 0, 4000, 10) +insert roysched values('BU1111', 4001, 8000, 12) +insert roysched values('BU1111', 8001, 10000, 14) + +GO + +insert roysched values('BU1111', 12001, 16000, 16) +insert roysched values('BU1111', 16001, 20000, 18) +insert roysched values('BU1111', 20001, 24000, 20) +insert roysched values('BU1111', 24001, 28000, 22) +insert roysched values('BU1111', 28001, 50000, 24) +insert roysched values('MC2222', 0, 2000, 10) +insert roysched values('MC2222', 2001, 4000, 12) +insert roysched values('MC2222', 4001, 8000, 14) +insert roysched values('MC2222', 8001, 12000, 16) + +GO + +insert roysched values('MC2222', 12001, 20000, 18) +insert roysched values('MC2222', 20001, 50000, 20) +insert roysched values('TC7777', 0, 5000, 10) +insert roysched values('TC7777', 5001, 15000, 12) +insert roysched values('TC7777', 15001, 50000, 14) +insert roysched values('TC4203', 0, 2000, 10) +insert roysched values('TC4203', 2001, 8000, 12) +insert roysched values('TC4203', 8001, 16000, 14) +insert roysched values('TC4203', 16001, 24000, 16) +insert roysched values('TC4203', 24001, 32000, 18) + +GO + +insert roysched values('TC4203', 32001, 40000, 20) +insert roysched values('TC4203', 40001, 50000, 22) +insert roysched values('BU7832', 0, 5000, 10) +insert roysched values('BU7832', 5001, 10000, 12) +insert roysched values('BU7832', 10001, 15000, 14) +insert roysched values('BU7832', 15001, 20000, 16) +insert roysched values('BU7832', 20001, 25000, 18) +insert roysched values('BU7832', 25001, 30000, 20) +insert roysched values('BU7832', 30001, 35000, 22) +insert roysched values('BU7832', 35001, 50000, 24) + +GO + +insert roysched values('PS1372', 0, 10000, 10) +insert roysched values('PS1372', 10001, 20000, 12) +insert roysched values('PS1372', 20001, 30000, 14) +insert roysched values('PS1372', 30001, 40000, 16) +insert roysched values('PS1372', 40001, 50000, 18) + +GO + +raiserror('Now at the inserts to discounts ....',0,1) + +GO + +insert discounts values('Initial Customer', NULL, NULL, NULL, 10.5) +insert discounts values('Volume Discount', NULL, 100, 1000, 6.7) +insert discounts values('Customer Discount', '8042', NULL, NULL, 5.0) + +GO + +raiserror('Now at the inserts to jobs ....',0,1) + +GO + +insert jobs values ('New Hire - Job not specified', 10, 10) +insert jobs values ('Chief Executive Officer', 200, 250) +insert jobs values ('Business Operations Manager', 175, 225) +insert jobs values ('Chief Financial Officier', 175, 250) +insert jobs values ('Publisher', 150, 250) +insert jobs values ('Managing Editor', 140, 225) +insert jobs values ('Marketing Manager', 120, 200) +insert jobs values ('Public Relations Manager', 100, 175) +insert jobs values ('Acquisitions Manager', 75, 175) +insert jobs values ('Productions Manager', 75, 165) +insert jobs values ('Operations Manager', 75, 150) +insert jobs values ('Editor', 25, 100) +insert jobs values ('Sales Representative', 25, 100) +insert jobs values ('Designer', 25, 100) + +GO + +raiserror('Now at the inserts to employee ....',0,1) + +GO + +insert employee values ('PTC11962M', 'Philip', 'T', 'Cramer', 2, 215, '9952', '11/11/89') +insert employee values ('AMD15433F', 'Ann', 'M', 'Devon', 3, 200, '9952', '07/16/91') +insert employee values ('F-C16315M', 'Francisco', '', 'Chang', 4, 227, '9952', '11/03/90') +insert employee values ('LAL21447M', 'Laurence', 'A', 'Lebihan', 5, 175, '0736', '06/03/90') +insert employee values ('PXH22250M', 'Paul', 'X', 'Henriot', 5, 159, '0877', '08/19/93') +insert employee values ('SKO22412M', 'Sven', 'K', 'Ottlieb', 5, 150, '1389', '04/05/91') +insert employee values ('RBM23061F', 'Rita', 'B', 'Muller', 5, 198, '1622', '10/09/93') +insert employee values ('MJP25939M', 'Maria', 'J', 'Pontes', 5, 246, '1756', '03/01/89') +insert employee values ('JYL26161F', 'Janine', 'Y', 'Labrune', 5, 172, '9901', '05/26/91') +insert employee values ('CFH28514M', 'Carlos', 'F', 'Hernadez', 5, 211, '9999', '04/21/89') +insert employee values ('VPA30890F', 'Victoria', 'P', 'Ashworth', 6, 140, '0877', '09/13/90') +insert employee values ('L-B31947F', 'Lesley', '', 'Brown', 7, 120, '0877', '02/13/91') +insert employee values ('ARD36773F', 'Anabela', 'R', 'Domingues', 8, 100, '0877', '01/27/93') +insert employee values ('M-R38834F', 'Martine', '', 'Rance', 9, 75, '0877', '02/05/92') +insert employee values ('PHF38899M', 'Peter', 'H', 'Franken', 10, 75, '0877', '05/17/92') +insert employee values ('DBT39435M', 'Daniel', 'B', 'Tonini', 11, 75, '0877', '01/01/90') +insert employee values ('H-B39728F', 'Helen', '', 'Bennett', 12, 35, '0877', '09/21/89') +insert employee values ('PMA42628M', 'Paolo', 'M', 'Accorti', 13, 35, '0877', '08/27/92') +insert employee values ('ENL44273F', 'Elizabeth', 'N', 'Lincoln', 14, 35, '0877', '07/24/90') + +GO + +insert employee values ('MGK44605M', 'Matti', 'G', 'Karttunen', 6, 220, '0736', '05/01/94') +insert employee values ('PDI47470M', 'Palle', 'D', 'Ibsen', 7, 195, '0736', '05/09/93') +insert employee values ('MMS49649F', 'Mary', 'M', 'Saveley', 8, 175, '0736', '06/29/93') +insert employee values ('GHT50241M', 'Gary', 'H', 'Thomas', 9, 170, '0736', '08/09/88') +insert employee values ('MFS52347M', 'Martin', 'F', 'Sommer', 10, 165, '0736', '04/13/90') +insert employee values ('R-M53550M', 'Roland', '', 'Mendel', 11, 150, '0736', '09/05/91') +insert employee values ('HAS54740M', 'Howard', 'A', 'Snyder', 12, 100, '0736', '11/19/88') +insert employee values ('TPO55093M', 'Timothy', 'P', 'O''Rourke', 13, 100, '0736', '06/19/88') +insert employee values ('KFJ64308F', 'Karin', 'F', 'Josephs', 14, 100, '0736', '10/17/92') +insert employee values ('DWR65030M', 'Diego', 'W', 'Roel', 6, 192, '1389', '12/16/91') +insert employee values ('M-L67958F', 'Maria', '', 'Larsson', 7, 135, '1389', '03/27/92') +insert employee values ('PSP68661F', 'Paula', 'S', 'Parente', 8, 125, '1389', '01/19/94') +insert employee values ('MAS70474F', 'Margaret', 'A', 'Smith', 9, 78, '1389', '09/29/88') +insert employee values ('A-C71970F', 'Aria', '', 'Cruz', 10, 87, '1389', '10/26/91') +insert employee values ('MAP77183M', 'Miguel', 'A', 'Paolino', 11, 112, '1389', '12/07/92') +insert employee values ('Y-L77953M', 'Yoshi', '', 'Latimer', 12, 32, '1389', '06/11/89') +insert employee values ('CGS88322F', 'Carine', 'G', 'Schmitt', 13, 64, '1389', '07/07/92') +insert employee values ('PSA89086M', 'Pedro', 'S', 'Afonso', 14, 89, '1389', '12/24/90') +insert employee values ('A-R89858F', 'Annette', '', 'Roulet', 6, 152, '9999', '02/21/90') +insert employee values ('HAN90777M', 'Helvetius', 'A', 'Nagy', 7, 120, '9999', '03/19/93') +insert employee values ('M-P91209M', 'Manuel', '', 'Pereira', 8, 101, '9999', '01/09/89') +insert employee values ('KJJ92907F', 'Karla', 'J', 'Jablonski', 9, 170, '9999', '03/11/94') +insert employee values ('POK93028M', 'Pirkko', 'O', 'Koskitalo', 10, 80, '9999', '11/29/93') +insert employee values ('PCM98509F', 'Patricia', 'C', 'McKenna', 11, 150, '9999', '08/01/89') +GO + +raiserror('Now at the create index section ....',0,1) with nowait + +GO + +CREATE CLUSTERED INDEX employee_ind ON employee(lname, fname, minit) + +GO + +CREATE NONCLUSTERED INDEX aunmind ON authors (au_lname, au_fname) +GO +CREATE NONCLUSTERED INDEX titleidind ON sales (title_id) +GO +CREATE NONCLUSTERED INDEX titleind ON titles (title) +GO +CREATE NONCLUSTERED INDEX auidind ON titleauthor (au_id) +GO +CREATE NONCLUSTERED INDEX titleidind ON titleauthor (title_id) +GO +CREATE NONCLUSTERED INDEX titleidind ON roysched (title_id) +GO + +raiserror('Now at the create view section ....',0,1) + +GO + +CREATE VIEW titleview +AS +select title, au_ord, au_lname, price, ytd_sales, pub_id +from authors, titles, titleauthor +where authors.au_id = titleauthor.au_id + AND titles.title_id = titleauthor.title_id + +GO + +raiserror('Now at the create procedure section ....',0,1) + +GO + +CREATE PROCEDURE byroyalty @percentage int +AS +select au_id from titleauthor +where titleauthor.royaltyper = @percentage + +GO + +CREATE PROCEDURE reptq1 AS +select + case when grouping(pub_id) = 1 then 'ALL' else pub_id end as pub_id, + avg(price) as avg_price +from titles +where price is NOT NULL +group by pub_id with rollup +order by pub_id + +GO + +CREATE PROCEDURE reptq2 AS +select + case when grouping(type) = 1 then 'ALL' else type end as type, + case when grouping(pub_id) = 1 then 'ALL' else pub_id end as pub_id, + avg(ytd_sales) as avg_ytd_sales +from titles +where pub_id is NOT NULL +group by pub_id, type with rollup + +GO + +CREATE PROCEDURE reptq3 @lolimit money, @hilimit money, +@type char(12) +AS +select + case when grouping(pub_id) = 1 then 'ALL' else pub_id end as pub_id, + case when grouping(type) = 1 then 'ALL' else type end as type, + count(title_id) as cnt +from titles +where price >@lolimit AND price <@hilimit AND type = @type OR type LIKE '%cook%' +group by pub_id, type with rollup + +GO + +UPDATE STATISTICS publishers +UPDATE STATISTICS employee +UPDATE STATISTICS jobs +UPDATE STATISTICS pub_info +UPDATE STATISTICS titles +UPDATE STATISTICS authors +UPDATE STATISTICS titleauthor +UPDATE STATISTICS sales +UPDATE STATISTICS roysched +UPDATE STATISTICS stores +UPDATE STATISTICS discounts + +GO + +CHECKPOINT + +GO + +USE master + +GO + +CHECKPOINT + +GO + +declare @dttm varchar(55) +select @dttm=convert(varchar,getdate(),113) +raiserror('Ending InstPubs.SQL at %s ....',1,1,@dttm) with nowait + +GO +-- - + diff --git a/Beginning ASP.NET 3.5/readme.txt b/Beginning ASP.NET 3.5/readme.txt new file mode 100644 index 0000000..1f102d7 --- /dev/null +++ b/Beginning ASP.NET 3.5/readme.txt @@ -0,0 +1,159 @@ + +---------- +Readme.txt +---------- + +The examples are arranged by chapter. + +You can use most of the examples without any additional configuration. Just open +the application folder as a website in Visual Studio. Or, open the corresponding +solution (.sln) file. All the websites include solution files, except Chapter03 +and Chapter05. + +The following notes explain special considerations for some examples, such as +database setup instructions. + + + +--------- +Chapter 8 +--------- + +This website includes examples that write event log entries. Writing to an event +log requires elevated privileges. In Windows Vista, you must explicitly run +Visual Studio as an administrator (right-click the Visual Studio icon and +choose Run As Administrator). Otherwise, the event log code will fail with a +security error. + + + +---------- +Chapter 12 +---------- + +You can download the font used in the GDI+ drawing example (it's optional) at +http://www.fonttrader.com/detailed~name~Alba_Super~font~648.htm. + + + +------------------ +Chapter 15, 16, 17 +------------------ + +Most of the code in these websites requires SQL Server 7 or later. You must also +install the sample databases and configure the connection string. The following +sections explain how. + + +* Installing the Sample Databases +--------------------------------- +These examples use two sample databases: Northwind and Pubs. If you are using +SQL Server 7 or SQL Server 2000, these sample databases may be installed already. +If you are using a later version of SQL Server, they won't be installed. + +To install the sample databases, you can use the following SQL scripts: + +- Use InstNwnd.sql to install the Northwind database. +- Use InstPubs.sql to install the Pubs database. + +If you are using a full version of SQL Server, you can open these scripts and run +them using a graphical tool like SQL Server Management Studio. + +If you are using SQL Server 2005 Express Edition, you'll need to use the sqlcmd.exe +command-line tool. If you are using SQL Server 2005 Express Edition, you need a +command like this to install the Northwind database: + + sqlcmd -S localhost\SQLEXPRESS -i InstNwnd.sql + +If you are using a full version of SQL Server 2005 on the local computer, you need +a command like this: + + sqlcmd -i InstNwnd.sql + + +* Connection Strings +-------------------- +You may need to modify the connection strings depending on how what version of +SQL Server you're using and where it's installed. The connection strings are in +the web.config file of each application, in the section. + +By default, the connection strings assume you are using SQL Server 2005 +Express Edition. Here's an example: + + + + + +If you are using a full version of SQL Server, you'll need to remove the instance +name and use a connection string like this: + + + + + +If you are using a SQL Server instance on another computer, you'll need to use +the server name instead of localhost. Read Chapter 15 for more information. + +Finally, the ConnectionTester.aspx page in Chapter 15 includes a hard-coded +connection string. You need to modify the source code of that page to change it. + + + +----------------- +Chapter 21 and 22 +----------------- + +These examples in these chapters use the automatic file-creation option in +SQL Server 2005 to create the membership and profiles databases. As long as +you have SQL Server 2005 installed, the required database will be generated +automatically in the App_Data subdirectory. + +If you are using SQL Server 2005 Express Edition, no changes are needed. +If you are using the full edition of SQL Server, you need to manually +create a database for storing the membership and profile information using the +aspnet_regsql.exe command-line tool. You must then modify the connection string +to use this database. Chapter 21 explains this setup process. + + + +---------- +Chapter 23 +---------- + +The two websites provided for this chapter use custom components. +The easiest way to use these examples is to open the solution (.sln) file, which +opens both the website and the class library project in one Visual Studio window. There are two solution files: + +- ComponentTest.sln (the simple component) +- DatabaseComponentTest.sln (the AdBoard database component) + +Before using the DatabaseComponentTest website, you must create the AdBoard +database. You can use the InstAdboard.sql script with a graphical management tool +or the sqlcmd.exe command-line tool, as described in the "Chapter 15, 16, 17" +section. If you are using the full version of SQL Server (not SQL Server Express), +you also need to modify the connection string in the web.config file. + + + +---------- +Chapter 24 +---------- + +The database dependency examples require the Northwind database. The section +"Chapter 15, 16, 17" describes how to install this database. If you are using +the full version of SQL Server (not SQL Server Express), you also need to modify +the connection string in the web.config file. + + + +---------- +Chapter 25 +---------- + +The autocomplete text box example requires the Northwind database. The section +"Chapter 15, 16, 17" describes how to install this database. If you are using +the full version of SQL Server (not SQL Server Express), you also need to modify +the connection string in the web.config file. + diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..0409ee5 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,27 @@ +Freeware License, some rights reserved + +Copyright (c) 2007 Matthew MacDonald + +Permission is hereby granted, free of charge, to anyone obtaining a copy +of this software and associated documentation files (the "Software"), +to work with the Software within the limits of freeware distribution and fair use. +This includes the rights to use, copy, and modify the Software for personal use. +Users are also allowed and encouraged to submit corrections and modifications +to the Software for the benefit of other users. + +It is not allowed to reuse, modify, or redistribute the Software for +commercial use in any way, or for a user’s educational materials such as books +or blog articles without prior permission from the copyright holder. + +The above copyright notice and this permission notice need to be included +in all copies or substantial portions of the software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS OR APRESS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..2ca3cd7 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +#Apress Source Code + +This repository accompanies [*Beginning ASP.NET 3.5 in C# 2008*](http://www.apress.com/9781590598917) by Matthew MacDonald (Apress, 2007). + +![Cover image](9781590598917.jpg) + +Download the files as a zip using the green button, or clone the repository to your machine using Git. + +##Releases + +Release v1.0 corresponds to the code in the published book, without corrections or updates. + +##Contributions + +See the file Contributing.md for more information on how you can contribute to this repository. diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..f6005ad --- /dev/null +++ b/contributing.md @@ -0,0 +1,14 @@ +# Contributing to Apress Source Code + +Copyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers. + +## How to Contribute + +1. Make sure you have a GitHub account. +2. Fork the repository for the relevant book. +3. Create a new branch on which to make your change, e.g. +`git checkout -b my_code_contribution` +4. Commit your change. Include a commit message describing the correction. Please note that if your commit message is not clear, the correction will not be accepted. +5. Submit a pull request. + +Thank you for your contribution! \ No newline at end of file