| | Copyright |
| | Preface |
| | Chapter 1. Master Pages |
| | | 1.0 Introduction |
| | | Recipe 1.2. Generating a Quick Master/Content Page Arrangement |
| | | Recipe 1.3. Extending a Master Page's Content to Include Content for Other Application Pages |
| | | Recipe 1.4. Changing Which Master Page Is Used Without Modifying All Affected Application Pages |
| | | Recipe 1.5. Setting the Master Page at Runtime |
| | Chapter 2. Tabular Data |
| | | Introduction |
| | | Recipe 2.2. Selecting the Right Tabular Control |
| | | Recipe 2.3. Generating a Quick-and-Dirty Tabular Display |
| | | Recipe 2.4. Enhancing the Output of a Tabular Display |
| | | Recipe 2.5. Displaying Data from an XML File |
| | | Recipe 2.6. Displaying an Array as a Group of Checkboxes |
| | | Recipe 2.7. Displaying Data from a Hashtable |
| | | Recipe 2.8. Adding Next/Previous Navigation to a DataGrid |
| | | Recipe 2.9. Adding First/Last Navigation to a DataGrid |
| | | Recipe 2.10. Adding Direct Page Navigation to a DataGrid |
| | | Recipe 2.11. Sorting Data in Ascending/Descending Order Within a DataGrid |
| | | Recipe 2.12. Combining Sorting and Paging in a DataGrid |
| | | Recipe 2.13. Paging Through a Record-Heavy DataGrid |
| | | Recipe 2.14. Editing Data Within a DataGrid |
| | | Recipe 2.15. Navigating and Sorting Within a GridView |
| | | Recipe 2.16. Updating a GridView Without Refreshing the Whole Page |
| | | Recipe 2.17. Editing Data in a GridView |
| | | Recipe 2.18. Inserting a Row Within a GridView |
| | | Recipe 2.19. Formatting Columnar Data in a GridView |
| | | Recipe 2.20. Allowing Selection Anywhere Within a GridView |
| | | Recipe 2.21. Adding a Delete Confirmation Pop-Up |
| | | Recipe 2.22. Displaying a Pop-Up Details Window |
| | | Recipe 2.23. Adding a Totals Row to a GridView |
| | Chapter 3. Validation |
| | | 3.0 Introduction |
| | | Recipe 3.2. Requiring That Data Be Entered in a Field |
| | | Recipe 3.3. Requiring Data to Be in a Range |
| | | Recipe 3.4. Requiring That Two Data Input Fields Match |
| | | Recipe 3.5. Requiring Data to Match a Predefined Pattern |
| | | Recipe 3.6. Requiring That a Drop-Down List Selection Be Made |
| | | Recipe 3.7. Requiring Data to Match a Database Entry |
| | | Recipe 3.8. Using Validation Groups to Support Login and New User Registration Within a Single Form |
| | | Recipe 3.9. Performing Validation Programmatically to Execute Your Own Application-Specific Logic |
| | Chapter 4. Forms |
| | | 4.0 Introduction |
| | | Recipe 4.2. Setting the Default Button to Submit a Form |
| | | Recipe 4.3. Submitting a Form to a Different Page |
| | | Recipe 4.4. Simulating Multipage Forms Problem |
| | | Recipe 4.5. Setting the Initial Focus to a Specific Control Problem |
| | | Recipe 4.6. Setting the Focus to a Control with a Validation Error |
| | Chapter 5. User Controls |
| | | 5.0 Introduction |
| | | Recipe 5.2. Sharing a Page Header on Multiple Pages |
| | | Recipe 5.3. Creating a Customizable Navigation Bar |
| | | Recipe 5.4. Reusing Code-Behind Classes |
| | | Recipe 5.5. Communicating Between User Controls |
| | | Recipe 5.6. Adding User Controls Dynamically |
| | Chapter 6. Custom Controls |
| | | 6.0 Introduction |
| | | Recipe 6.2. Combining HTML Controls in a Single Custom Control |
| | | Recipe 6.3. Creating a Custom Control with Attributes |
| | | Recipe 6.4. Creating a Custom Control with State |
| | | Recipe 6.5. Using the Control State with Custom Controls |
| | | Recipe 6.6. Customizing an ASP.NET TextBox Server Control |
| | Chapter 7. Maintaining State |
| | | 7.0 Introduction |
| | | Recipe 7.2. Maintaining Information Needed by All Users of an Application |
| | | Recipe 7.3. Maintaining Information About a User Throughout a Session |
| | | Recipe 7.4. Preserving Information Between Postbacks |
| | | Recipe 7.5. Preserving Information Across Multiple Requests for a Page |
| | Chapter 8. Error Handling |
| | | 8.0 Introduction |
| | | Recipe 8.2. Handling Errors at the Method Level |
| | | Recipe 8.3. Handling Errors at the Page Level |
| | | Recipe 8.4. Handling Errors at the Application Level |
| | | Recipe 8.5. Displaying User-Friendly Error Messages |
| | Chapter 9. Security |
| | | 9.0 Introduction |
| | | Recipe 9.2. Restricting Access to All Application Pages |
| | | Recipe 9.3. Restricting Access to Selected Application Pages |
| | | Recipe 9.4. Restricting Access to Application Pages by Role |
| | | Recipe 9.5. Using Windows Authentication |
| | | Recipe 9.6. Using Membership and Roles |
| | Chapter 10. Profiles and Themes |
| | | 10.0 Introduction |
| | | Recipe 10.2. Using Profiles |
| | | Recipe 10.3. Inheriting a Profile |
| | | Recipe 10.4. Using and Migrating Anonymous Profiles |
| | | Recipe 10.5. Managing User Profiles |
| | | Recipe 10.6. Using Themes |
| | | Recipe 10.7. User-Personalized Themes |
| | Chapter 11. Web Parts |
| | | 11.0 Introduction |
| | | Recipe 11.2. Using Server Controls and User Controls as Web Parts |
| | | Recipe 11.3. Creating a Reusable Web Parts Catalog |
| | | Recipe 11.4. Creating a Custom Web Part |
| | | Recipe 11.5. Communicating Between Web Parts |
| | | Recipe 11.6. Persisting Personalized Web Part Properties |
| | Chapter 12. Configuration |
| | | 12.0 Introduction |
| | | Recipe 12.2. Overriding Default HTTP Runtime Parameters in web.config |
| | | Recipe 12.3. Adding Custom Application Settings in web.config |
| | | Recipe 12.4. Displaying Custom Error Messages |
| | | Recipe 12.5. Maintaining Session State Across Multiple Web Servers |
| | | Recipe 12.6. Accessing Other web.config Configuration Elements |
| | | Recipe 12.7. Adding Your Own Configuration Elements to web.config |
| | | Recipe 12.8. Encrypting web.config Sections |
| | Chapter 13. Tracing and Debugging |
| | | 13.0 Introduction |
| | | Recipe 13.2. Uncovering Page-Level Problems |
| | | Recipe 13.3. Uncovering Application-Wide Problems |
| | | Recipe 13.4. Pinpointing the Cause of an Exception |
| | | Recipe 13.5. Uncovering Problems Within Web Application Components |
| | | Recipe 13.6. Uncovering Problems Within Dual-Use Components |
| | | Recipe 13.7. Writing Trace Data to the Event Log with Controllable Levels |
| | | Recipe 13.8. Sending Trace Data via Email with Controllable Levels |
| | | Recipe 13.9. Using a Breakpoint to Stop Execution of an Application When a Condition Is Met |
| | Chapter 14. Web Services |
| | | 14.0 Introduction |
| | | Recipe 14.2. Creating a Web Service |
| | | Recipe 14.3. Consuming a Web Service |
| | | Recipe 14.4. Creating a Web Service That Returns a Custom Object |
| | | Recipe 14.5. Setting the URL of a Web Service at Runtime |
| | Chapter 15. Dynamic Images |
| | | 15.0 Introduction |
| | | Recipe 15.2. Drawing Button Images on the Fly |
| | | Recipe 15.3. Creating Bar Charts on the Fly |
| | | Recipe 15.4. Displaying Images Stored in a Database |
| | | Recipe 15.5. Displaying Thumbnail Images |
| | Chapter 16. Caching |
| | | 16.0 Introduction |
| | | Recipe 16.2. Caching Pages |
| | | Recipe 16.3. Caching Pages Based on Query String Parameter Values |
| | | Recipe 16.4. Caching Pages Based on Browser Type and Version |
| | | Recipe 16.5. Caching Pages Based on Developer-Defined Custom Strings |
| | | Recipe 16.6. Caching Pages Based on Database Dependencies |
| | | Recipe 16.7. Caching User Controls |
| | | Recipe 16.8. Caching Application Data |
| | | Recipe 16.9. Caching Application Data Based on Database Dependencies |
| | | Recipe 16.10. Caching Data Sources |
| | Chapter 17. Internationalization |
| | | 17.0 Introduction |
| | | Recipe 17.2. Localizing Request/Response Encoding |
| | | Recipe 17.3. Providing Multiple Language Support |
| | | Recipe 17.4. Using Global Resources and Overriding Currency Formatting |
| | Chapter 18. File Operations |
| | | 18.0 Introduction |
| | | Recipe 18.2. Downloading a File from the Web Server |
| | | Recipe 18.3. Uploading a File to the Web Server |
| | | Recipe 18.4. Processing an Uploaded File Without Storing It on the Filesystem |
| | | Recipe 18.5. Storing the Contents of an Uploaded File in a Database |
| | Chapter 19. Performance |
| | | 19.0 Introduction |
| | | Recipe 19.2. Reducing Page Size by Selectively Disabling the ViewState |
| | | Recipe 19.3. Speeding Up String Concatenation with a StringBuilder |
| | | Recipe 19.4. Speeding Up Read-Only Data Access |
| | | Recipe 19.5. Speeding Up Data Access to a SQL Server Database Using the SQL Provider |
| | Chapter 20. HTTP Handlers |
| | | 20.0 Introduction |
| | | Recipe 20.2. Creating a Reusable Image Handler |
| | | Recipe 20.3. Creating a File Download Handler |
| | Chapter 21. Assorted Tips |
| | | 21.0 Introduction |
| | | Recipe 21.2. Accessing HTTP-Specific Information from Within a Class |
| | | Recipe 21.3. Executing External Applications |
| | | Recipe 21.4. Transforming XML to HTML |
| | | Recipe 21.5. Determining the User's Browser Type |
| | | Recipe 21.6. Dynamically Creating Browser-Specific Stylesheets |
| | | Recipe 21.7. Saving and Reusing HTML Output |
| | | Recipe 21.8. Sending Mail |
| | | Recipe 21.9. Dynamic Menus |
| | | Recipe 21.10. Adding Breadcrumbs |
| | About the Authors |
| | Colophon |
| | Index |