ebook img

Pro ASP.NET 3.5 Server Controls and AJAX Components (Pro) PDF

766 Pages·2008·18.52 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Pro ASP.NET 3.5 Server Controls and AJAX Components (Pro)

cyan yelloW MaGenTa Black panTone 123 c Books for professionals By professionals® The eXperT’s Voice® in .neT Pro ASP.NET 3.5 Server Controls Pro and AJAX Components a A Pro Dear Reader, n We wrote this book to help explain the development model behind ASP.NET and S d its core server control technology. While ASP.NET includes many rich and useful P server controls, most developers have just begun to scratch the surface of extend- A ASP.NET 3.5 . ing ASP.NET web applications with custom server controls. The introduction of Rob Cameron, coauthor of ASP.NET AJAX brings even more opportunities to integrate client-side functionality JN Building ASP.NET in JavaScript into the server control model. We cover advanced techniques for AE Server Controls working with .NET 3.5, such as building web parts and server controls that use the Pro BizTalk 2006 ASP.NET AJAX architecture. These techniques, besides being just plain cool, allow XT Server Controls you to do the following: • Enhance built-in controls when they don’t quite meet your needs C3 and • Encapsulate hand-coded HTML into a server control that can be . manipulated on the Visual Studio Designer surface, as well as in code o5 • Integrate existing AJAX script into the server control development model m AJAX Components to increase reusability and improve the developer experience S In this book, we strive to provide you with a deep knowledge of how the ASP. p NET Framework works, as well as how to plug in to the architecture. We show e you how to integrate and, more importantly, encapsulate client-side script into o r server-control technology directly or through the ASP.NET AJAX model using nv straightforward code examples. We believe that you will come away from this book with a greatly improved ee Dale Michalk, coauthor of understanding of how ASP.NET works. Building ASP.NET nr Server Controls Sincerely, Rob Cameron and Dale Michalk tC Learn how to build ASP.NET server controls s o including data-binding server controls, web parts, n ASP.NET AJAX server controls, and extenders. THE APRESS ROADMAP Pro XML with .NET 3.5 t r Beginning Pro LINQ ASP.NET 3.5 in C# 2008 o Pro ASP.NET 3.5 Server Controls l Beginning C# 2008 Pro ASP.NET MVC s Pro ASP.NET 3.5 in C# 2008 C SOURCE CODE ONLINE ISBN-13: 978-1-59059-865-8 Miam Rob Cameron and Dale Michalk www.apress.com ISBN-10: 1-59059-865-2 c he 55999 ar o l kn US $59.99 , Shelve in .NET User level: 9 781590 598658 Intermediate–Advanced this print for content only—size & color not accurate spine = 1.443" 768 page count Cameron_865-2FRONT.fm Page i Monday, February 25, 2008 3:19 PM Pro ASP.NET 3.5 Server Controls and AJAX Components ■ ■ ■ Rob Cameron and Dale Michalk Cameron_865-2FRONT.fm Page ii Monday, February 25, 2008 3:19 PM Pro ASP.NET 3.5 Server Controls and AJAX Components Copyright © 2008 by Rob Cameron, Dale Michalk 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-865-8 ISBN-10 (pbk): 1-59059-865-2 ISBN-13 (electronic): 978-1-4302-0462-6 ISBN-10 (electronic): 1-4302-0462-1 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 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. Microsoft product screen shot(s) reprinted with permission from Microsoft Corporation. Lead Editor: Ewan Buckingham Technical Reviewer: Fabio Claudio Ferracchiati Editorial Board: Clay Andres, Steve Anglin, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Matthew Moodie, Joseph Ottinger, Jeffrey Pepper, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Project Manager: Kylie Johnston Copy Editor: Heather Lang Associate Production Director: Kari Brooks-Copony Production Editor: Ellie Fountain Compositor: Susan Glinert Proofreader: Liz Welch Indexer: Brenda Miller Artist: Kinetic Publishing Services, LLC Cover Designer: Kurt Krames Manufacturing Director: 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 [email protected], or visit http://www.springeronline.com. For information on translations, please contact Apress directly at 2855 Telegraph Avenue, Suite 600, Berkeley, CA 94705. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http:// www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at http://www.apress.com/info/bulksales. 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. Cameron_865-2FRONT.fm Page iii Monday, February 25, 2008 3:19 PM To my beautiful wife, Ally, and daughters Amanda and Anna, who bring so much happiness to my life —Rob Cameron Cameron_865-2FRONT.fm Page iv Monday, February 25, 2008 3:19 PM Cameron_865-2FRONT.fm Page v Monday, February 25, 2008 3:19 PM Contents at a Glance About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii ■ CHAPTER 1 Server Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ■ CHAPTER 2 Encapsulating Functionality in ASP.NET . . . . . . . . . . . . . . . . . . . . . . . 43 ■ CHAPTER 3 ASP.NET State Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ■ CHAPTER 4 The WebControl Base Class and Control Styles . . . . . . . . . . . . . . . 123 ■ CHAPTER 5 Server Control Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 ■ CHAPTER 6 Server Control Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 ■ CHAPTER 7 Server Control Data Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 ■ CHAPTER 8 Integrating Client-Side Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 ■ CHAPTER 9 ASP.NET AJAX Controls and Extenders . . . . . . . . . . . . . . . . . . . . . . . 413 ■ CHAPTER 10 Other Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 ■ CHAPTER 11 Design-Time Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 ■ CHAPTER 12 Building a Complex Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 ■ CHAPTER 13 Packaging and Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 ■ INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713 v Cameron_865-2FRONT.fm Page vi Monday, February 25, 2008 3:19 PM Cameron_865-2FRONT.fm Page vii Monday, February 25, 2008 3:19 PM Contents About the Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii About the Technical Reviewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxiii ■ CHAPTER 1 Server Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 The Heart and Soul of ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 A .NET Framework “Hello, World” Web Form . . . . . . . . . . . . . . . . . . . . . . . 2 Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Control Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Control Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 The Web Page As a Control Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 The Root Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 The System.Web.UI Namespace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 System.Web.UI.HtmlControls Namespace. . . . . . . . . . . . . . . . . . . . . 14 The System.Web.UI.WebControls Namespace . . . . . . . . . . . . . . . . . 20 Web Controls vs. HTML Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ■ CHAPTER 2 Encapsulating Functionality in ASP.NET . . . . . . . . . . . . . . . . . 43 Packaging Content in ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Inheritance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Comparing the Control-Building Techniques . . . . . . . . . . . . . . . . . . . . . . . 45 User Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Custom Server Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Building a User Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Building a Custom Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 ASP.NET AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ASP.NET AJAX UpdatePanel Server Control. . . . . . . . . . . . . . . . . . . . 78 ASP.NET AJAX UpdateProgress Server Control. . . . . . . . . . . . . . . . . 79 vii Cameron_865-2FRONT.fm Page viii Monday, February 25, 2008 3:19 PM viii ■ CONTENTS Using Design-Time Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 What’s an Attribute?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Common Design-Time Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ■ CHAPTER 3 ASP.NET State Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 ASP.NET Request-Processing Architecture . . . . . . . . . . . . . . . . . . . . . . . . 85 HttpHandler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ASP.NET and Server-Side State Management . . . . . . . . . . . . . . . . . . . . . 88 The Context Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Server-Side State Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 ASP.NET and Client-Side State Management . . . . . . . . . . . . . . . . . . . . . . 89 URL Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 HTML Hidden Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ViewState. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 A Client State Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Reading the Client State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Getting the URL State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 ASP.NET Server Controls and State . . . . . . . . . . . . . . . . . . . . . . . . . 102 Form Post Data and ASP.NET Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 The IPostBackDataHandler Interface . . . . . . . . . . . . . . . . . . . . . . . . 108 The Textbox Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Using the Textbox Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ASP.NET Control State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 ViewState Is Now Application User State. . . . . . . . . . . . . . . . . . . . . 115 New TextBox3d Demonstration Web Form . . . . . . . . . . . . . . . . . . . 116 Adding Control State to TextBox3D. . . . . . . . . . . . . . . . . . . . . . . . . . 118 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ■ CHAPTER 4 The WebControl Base Class and Control Styles . . . . . . . . . 123 Customizing the Appearance of Controls . . . . . . . . . . . . . . . . . . . . . . . . . 123 HTML: Content and Appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Styling Using Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Styling Using Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . 124 Style Properties and Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Description:
Microsoft's ASP.NET technology is a popular and enduring technology that can be expanded with custom server controls. Custom server controls allow programmers to add advanced features to their web sites by extending existing, well-known controls such as text boxes and buttons. This book covers how t
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.