Pro ASP.NET 2.0 In CSharp 2005 (2005) [eng]
.pdfTHE EXPERT’S VOICE® IN .NET
ForFor aa limitedlimited time,time, getget thethe free,free, fullyfully searchablesearchable eBookeBook—— aa $$3030 value!value! SeeSee insideinside forfor detailsdetails..
Pro
ASP.NET 2.0
in C# 2005
Create next-generation web applications with the latest version of Microsoft’s revolutionary technology.
Matthew MacDonald and Mario Szpuszta
Pro ASP.NET 2.0
in C# 2005
Matthew MacDonald and Mario Szpuszta,
Revising Authors
K. Scott Allen |
Brady Gaster |
Matt Odhner |
James Avery |
James Greenwood |
Ryan O'Keefe |
Russ Basiura |
Kevin Hoffman |
Andrew Reid |
Mike Batongbacal |
Erik Johansson |
Matthew Reynolds |
Marco Bellinaso |
Angelo Kastroulis |
Enrico Sabbadin |
Matt Butler |
Dan Kent |
Bill Sempf |
Andreas Eide |
Sitaraman Lakshminarayanan |
Doug Seven |
Daniel Cazzulino |
Don Lee |
Srinivasa Sivakumar |
Michael Clark |
Christopher Miller |
Thiru Thangarathinam |
Richard Conway |
Matt Milner |
Doug Thews |
Robert Eisenberg |
Jan Narkiewicz |
|
Pro ASP.NET 2.0 in C# 2005
Copyright © 2005 by Matthew MacDonald and Mario Szpuszta
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.
ISBN-13 (pbk): 978-1-59059-496-4
ISBN-10 (pbk): 1-59059-496-7
Printed and bound in the United States of America 9 8 7 6 5 4 3 2
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
Lead Editor: Ewan Buckingham
Technical Reviewers: Robert Lair, Jason Lefebvre
Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis, Jason Gilmore, Jonathan Hassell, Chris Mills, Dominic Shakeshaft, Jim Sumser
Associate Publisher: Grace Wong
Project Manager: Kylie Johnston Copy Edit Manager: Nicole LeClerc Copy Editor: Kim Wimpsett
Assistant Production Director: Kari Brooks-Copony Production Editor: Laura Cheu
Compositor: Dina Quan Proofreaders: Liz Welch and Lori Bring
Indexer: Broccoli Information Management Artist: Kinetic Publishing Services, LLC Interior Designer: Diana Van Winkle
Cover Designer: Kurt Krames Manufacturing Manager: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail orders-ny@springer-sbm.com, or visit http://www.springeronline.com.
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail info@apress.com, or visit http://www.apress.com.
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.
The source code for this book is available to readers at http://www.apress.com in the Source Code section.
Contents at a Glance
About the Revising Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. xxv |
|
About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
xxvii |
|
Introduction . . . . . . . . |
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
xxix |
PART 1 ■ ■ ■ Core Concepts |
|
|
■CHAPTER 1 |
Introducing ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 3 |
■CHAPTER 2 |
Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 23 |
■CHAPTER 3 |
Web Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 63 |
■CHAPTER 4 |
Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
103 |
■CHAPTER 5 |
ASP.NET Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
151 |
■CHAPTER 6 |
State Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
195 |
PART 2 ■ ■ ■ Data Access |
|
|
■CHAPTER 7 |
ADO.NET Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
229 |
■CHAPTER 8 |
Data Components and the DataSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
265 |
■CHAPTER 9 |
Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
295 |
■CHAPTER 10 |
Rich Data Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
335 |
■CHAPTER 11 |
Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
391 |
■CHAPTER 12 |
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
425 |
■CHAPTER 13 |
Files and Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
471 |
PART 3 ■ ■ ■ Building ASP.NET Websites |
|
|
■CHAPTER 14 |
User Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
505 |
■CHAPTER 15 |
Themes and Master Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
525 |
■CHAPTER 16 |
Website Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
555 |
■CHAPTER 17 |
Resources and Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
599 |
■CHAPTER 18 |
Website Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
619 |
iv
PART 4 ■ ■ ■ Security |
|
|
■CHAPTER 19 |
The ASP.NET Security Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 667 |
■CHAPTER 20 |
Forms Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 689 |
■CHAPTER 21 |
Membership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 709 |
■CHAPTER 22 |
Windows Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 751 |
■CHAPTER 23 |
Authorization and Roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 777 |
■CHAPTER 24 |
Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 803 |
■CHAPTER 25 |
Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 839 |
■CHAPTER 26 |
Custom Membership Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 867 |
PART 5 ■ ■ ■ Advanced User Interface |
|
|
■CHAPTER 27 |
Custom Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 899 |
■CHAPTER 28 |
Design-Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 941 |
■CHAPTER 29 |
JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 975 |
■CHAPTER 30 |
Dynamic Graphics and GDI+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1011 |
■CHAPTER 31 |
Portals with Web Part Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
1043 |
PART 6 ■ ■ ■ Web Services
■CHAPTER 32 Creating Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
■CHAPTER 33 Web Service Standards and Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129
■CHAPTER 34 Advanced Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175
■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
v
Contents
About the Revising Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. xxv |
|
About the Technical Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
xxvii |
|
Introduction . . . . . . . . |
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
xxix |
PART 1 ■ ■ ■ Core Concepts |
|
|
■CHAPTER 1 |
Introducing ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 3 |
|
The Evolution of Web Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 3 |
|
The Development World Before ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 3 |
|
What’s Wrong with Classic ASP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 4 |
|
ASP.NET 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 6 |
|
Seven Important Facts About ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 7 |
|
Fact 1: ASP.NET Is Integrated with the .NET Framework . . . . . . . . . . . . . . . . . . |
. . 7 |
|
Fact 2: ASP.NET Is Compiled, Not Interpreted . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 7 |
|
Fact 3: ASP.NET Is Multilanguage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . 9 |
|
Fact 4: ASP.NET Runs Inside the Common Language Runtime . . . . . . . . . . . . . |
. 11 |
|
Fact 5: ASP.NET Is Object-Oriented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 12 |
|
Fact 6: ASP.NET Is Multidevice and Multibrowser . . . . . . . . . . . . . . . . . . . . . . . |
. 14 |
|
Fact 7: ASP.NET Is Easy to Deploy and Configure . . . . . . . . . . . . . . . . . . . . . . . |
. 14 |
|
ASP.NET 2.0: The Story Continues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 15 |
|
C# 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 16 |
|
Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 16 |
|
ASP.NET 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 16 |
|
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 22 |
■CHAPTER 2 |
Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 23 |
|
The .NET Development Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 24 |
|
The Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 24 |
|
The Visual Studio IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 25 |
|
Websites in Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 26 |
|
Projectless Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 28 |
|
Migrating a Visual Studio .NET Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 29 |
|
Designing a Web Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 30 |
|
The Visual Studio IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 34 |
|
Solution Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 36 |
|
Document Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 37 |
|
Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 37 |
vii
viii |
■C O N T E N T S |
|
|
|
|
Error List and Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 38 |
|
|
Server Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 39 |
|
|
The Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 40 |
|
|
Adding Assembly References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 41 |
|
|
IntelliSense and Outlining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 43 |
|
|
The Coding Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 47 |
|
|
How Code-Behind Files Are Connected to Pages . . . . . . . . . . . . . . . . . . . . . . . |
. 49 |
|
|
How Control Tags Are Connected to Page Variables . . . . . . . . . . . . . . . . . . . . . . |
50 |
|
|
How Events Are Connected to Event Handlers . . . . . . . . . . . . . . . . . . . . . . . . . . |
50 |
|
|
Visual Studio Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
|
|
Single-Step Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
|
|
Advanced Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
55 |
|
|
Variable Watches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
56 |
|
|
Visual Studio Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
57 |
|
|
ASP.NET Development Helper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
59 |
|
|
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
61 |
|
■CHAPTER 3 |
Web Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
63 |
|
|
Page Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
64 |
|
|
HTML Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
64 |
|
|
Dynamic Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
66 |
|
|
The ASP.NET Event Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
66 |
|
|
Automatic Postbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
67 |
|
|
View State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
69 |
|
|
XHTML Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
73 |
|
|
Web Forms Processing Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
76 |
|
|
Page Framework Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
77 |
|
|
User Code Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
77 |
|
|
Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
78 |
|
|
Event Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
78 |
|
|
Automatic Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
79 |
|
|
Cleanup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
79 |
|
|
A Page Flow Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
80 |
|
|
The Page As a Control Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
82 |
|
|
Showing the Control Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
82 |
|
|
The Page Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
86 |
|
|
Dynamic Control Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
87 |
|
|
The Page Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
89 |
|
|
Session, Application, and Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
89 |
|
|
Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
89 |
|
|
Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
91 |
|
|
Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
92 |
|
|
User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
94 |
|
|
Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
95 |
|
|
Accessing the HTTP Context in Another Class . . . . . . . . . . . . . . . . . . . . . . . . . . |
100 |
|
|
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
101 |
■C O N T E N T S ix
■CHAPTER 4 |
Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
103 |
|
Types of Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
104 |
|
The Server Control Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
105 |
|
HTML Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
106 |
|
The HtmlControl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
107 |
|
The HtmlContainerControl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
108 |
|
The HtmlInputControl Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
108 |
|
The HTML Server Control Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
108 |
|
Setting Style Attributes and Other Properties . . . . . . . . . . . . . . . . . . . . . . . . . . |
110 |
|
Programmatically Creating Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . |
111 |
|
Handling Server-Side Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
113 |
|
Web Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
116 |
|
The WebControl Base Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
117 |
|
Basic Web Control Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
117 |
|
Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
119 |
|
Enumerated Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
120 |
|
Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
120 |
|
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
121 |
|
Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
122 |
|
The Default Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
123 |
|
Scrollable Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
123 |
|
Handling Web Control Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
124 |
|
The List Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
127 |
|
The Selectable List Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
128 |
|
The BulletedList Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
130 |
|
Input Validation Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
132 |
|
The Validation Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
133 |
|
The Validation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
134 |
|
The BaseValidator Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
135 |
|
The RequiredFieldValidator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
137 |
|
The RangeValidator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
137 |
|
The CompareValidator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
137 |
|
The RegularExpressionValidator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
138 |
|
The CustomValidator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
141 |
|
The ValidationSummary Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
142 |
|
Using the Validators Programmatically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
143 |
|
Validation Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
144 |
|
The ASP.NET Rich Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
145 |
|
The AdRotator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
146 |
|
The Calendar Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
148 |
|
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
150 |
■CHAPTER 5 |
ASP.NET Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
151 |
|
Anatomy of an ASP.NET Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
152 |
|
The Application Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
152 |
|
Application Lifetime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
153 |