Introduction |
|
1 | (2) |
|
What does this Book Cover? |
|
|
2 | (1) |
|
|
3 | (1) |
|
What do you Need to Use this Book? |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
5 | (4) |
|
How to Download the Sample Code for the Book |
|
|
5 | (1) |
|
|
5 | (1) |
|
|
5 | (1) |
|
|
6 | (3) |
|
Introducing a Server Control Based Architecture |
|
|
9 | (32) |
|
|
10 | (2) |
|
What Are Server Controls? |
|
|
12 | (3) |
|
|
13 | (2) |
|
|
15 | (3) |
|
The Life-Cycle of an ASP.NET Server Control |
|
|
16 | (2) |
|
When Should We Create Our Own Controls? |
|
|
18 | (2) |
|
User Controls Versus Server Controls |
|
|
18 | (1) |
|
Performance Considerations |
|
|
19 | (1) |
|
|
20 | (6) |
|
Creating a Custom Server Control |
|
|
26 | (6) |
|
Using the Control in a Page |
|
|
30 | (2) |
|
Creating a Composite Control |
|
|
32 | (7) |
|
|
39 | (2) |
|
Rendering Server Controls |
|
|
41 | (34) |
|
|
42 | (1) |
|
|
42 | (1) |
|
|
43 | (18) |
|
Writing the Markup Content Directly |
|
|
43 | (2) |
|
Using the Utility Methods of the HtmlTextWriter Class |
|
|
45 | (3) |
|
Exposing Attributes as Properties |
|
|
48 | (3) |
|
Using the WebControl Class for Control Creation |
|
|
51 | (5) |
|
A Complex Control Creation Example |
|
|
56 | (5) |
|
Applications of the HtmlTextWriter Class |
|
|
61 | (1) |
|
|
61 | (3) |
|
Device Detection and Customized Rendering |
|
|
62 | (2) |
|
|
64 | (2) |
|
Limitations of Current Validation Techniques (Client-Side and Server-Side) |
|
|
64 | (1) |
|
Plumbing Provided by the Validation Controls |
|
|
65 | (1) |
|
Detecting Browser Capabilities |
|
|
66 | (7) |
|
HttpBrowserCapabilities Class |
|
|
66 | (2) |
|
Using ClientTarget Property to Affect the Output of a Server Control |
|
|
68 | (5) |
|
|
73 | (2) |
|
Events and Event Handling |
|
|
75 | (32) |
|
Events in the .NET Framework |
|
|
75 | (8) |
|
|
76 | (1) |
|
|
77 | (1) |
|
|
77 | (1) |
|
|
78 | (2) |
|
Custom EventArgs and Delegates |
|
|
80 | (2) |
|
|
82 | (1) |
|
Events in ASP.NET Controls |
|
|
83 | (9) |
|
Postback - Responding to Events and Data |
|
|
83 | (9) |
|
Inheritance and Containment |
|
|
92 | (6) |
|
Handling Events in Base Controls |
|
|
92 | (1) |
|
Events in Contained Controls |
|
|
93 | (3) |
|
|
96 | (2) |
|
|
98 | (7) |
|
|
105 | (2) |
|
|
107 | (32) |
|
Introduction to ViewState |
|
|
108 | (22) |
|
|
109 | (3) |
|
ViewState with Simple Controls |
|
|
112 | (4) |
|
ViewState with Composite Controls |
|
|
116 | (8) |
|
Control Class Properties and Methods Affecting ViewState |
|
|
124 | (1) |
|
ViewState and Performance |
|
|
125 | (2) |
|
|
127 | (3) |
|
Accessing Application and Session State Variables |
|
|
130 | (6) |
|
Exposing Application State Variables to a Server Control |
|
|
131 | (3) |
|
Exposing Session State Variables to a Server Control |
|
|
134 | (2) |
|
|
136 | (3) |
|
Templated Controls and Styles |
|
|
139 | (52) |
|
|
140 | (34) |
|
Creating Templated Controls |
|
|
144 | (3) |
|
|
147 | (9) |
|
Advanced Templated Control |
|
|
156 | (11) |
|
|
167 | (7) |
|
|
174 | (1) |
|
|
174 | (14) |
|
|
175 | (2) |
|
Exposing Styles as Properties |
|
|
177 | (4) |
|
Exposing Style Elements as Top-Level Properties |
|
|
181 | (3) |
|
Creating a Custom Style Class |
|
|
184 | (3) |
|
|
187 | (1) |
|
|
188 | (3) |
|
Controls that Work with Data |
|
|
191 | (46) |
|
|
192 | (6) |
|
|
194 | (4) |
|
|
198 | (8) |
|
Creating a Simple Templated Databound Control |
|
|
206 | (8) |
|
Creating a Simple Databound Control |
|
|
214 | (9) |
|
Creating an Advanced Templated Databound Control |
|
|
223 | (11) |
|
|
234 | (3) |
|
|
237 | (36) |
|
|
239 | (4) |
|
A Simple Example using AllowWhitespaceLiterals |
|
|
240 | (3) |
|
ControlBuilder and Page Parser Interaction |
|
|
243 | (11) |
|
AppendLiteralString and More Parsing Detail |
|
|
248 | (3) |
|
|
251 | (1) |
|
CloseControl Method and ControlBuilder Properties |
|
|
252 | (2) |
|
Classes Derived from ControlBuilder |
|
|
254 | (7) |
|
Classes Overriding HtmlDecodeLiterals |
|
|
255 | (3) |
|
Classes Overriding AppendSubBuilder |
|
|
258 | (3) |
|
NeedsTagInnerText and SetTagInnerText |
|
|
261 | (4) |
|
|
265 | (3) |
|
|
268 | (1) |
|
|
269 | (1) |
|
|
269 | (4) |
|
Building Controls Using Visual Studio.NET |
|
|
273 | (44) |
|
|
274 | (1) |
|
Features of the VS .NET IDE |
|
|
275 | (6) |
|
Shared Development Environment |
|
|
277 | (1) |
|
|
277 | (1) |
|
Customizing the VS .NET IDE Using Template Policy |
|
|
278 | (3) |
|
|
281 | (1) |
|
|
281 | (1) |
|
Non-Language-Centric Features |
|
|
281 | (10) |
|
|
282 | (3) |
|
|
285 | (1) |
|
|
285 | (2) |
|
|
287 | (1) |
|
|
288 | (2) |
|
|
290 | (1) |
|
Language-Centric Features |
|
|
291 | (6) |
|
|
291 | (1) |
|
|
292 | (1) |
|
|
293 | (1) |
|
|
293 | (1) |
|
|
294 | (1) |
|
|
294 | (1) |
|
|
294 | (3) |
|
Server Control IDE Features Example |
|
|
297 | (17) |
|
|
297 | (1) |
|
|
298 | (1) |
|
|
299 | (1) |
|
Creating the News Web Site (VB .NET) |
|
|
299 | (5) |
|
XML News Feed Server Control (C# .NET) - XMLNewsFeed |
|
|
304 | (4) |
|
XML News Display Server Control (C# .NET) - XMLNewsDisplay |
|
|
308 | (3) |
|
Completing the Web XML News Web Site |
|
|
311 | (1) |
|
Debugging the XML News Web Site |
|
|
312 | (1) |
|
|
313 | (1) |
|
|
314 | (3) |
|
|
317 | (54) |
|
What Does Design-Time Support Mean? |
|
|
318 | (2) |
|
|
318 | (2) |
|
Overview of the Design-Time Architecture |
|
|
320 | (49) |
|
|
321 | (6) |
|
|
327 | (18) |
|
|
345 | (24) |
|
|
369 | (2) |
|
Deploying and Licensing Server Controls |
|
|
371 | (1) |
|
Deploying Server Controls |
|
|
371 | (1) |
|
Working with the Global Assembly Cache |
|
|
372 | (1) |
|
Introducing Strong-Named Assemblies |
|
|
373 | (4) |
|
Adding a Control to the GAC |
|
|
377 | (2) |
|
Introduction to Licensing |
|
|
379 | (1) |
|
|
379 | (2) |
|
|
381 | (1) |
|
|
381 | (10) |
|
|
391 | |