Introduction |
|
1 | (1) |
|
|
1 | (1) |
|
|
2 | (1) |
|
|
2 | (1) |
|
How This Book Is Organized |
|
|
2 | (4) |
|
|
3 | (1) |
|
Part II: Introducing ASP.NET 2.0 |
|
|
3 | (1) |
|
Part III: Speaking the Language |
|
|
3 | (1) |
|
Part IV: Classy Objects and Methodical Properties |
|
|
3 | (1) |
|
Part V: Creating Interactive Web Applications |
|
|
4 | (1) |
|
Part VI: Casting a Wider ASP.NET 2.0 |
|
|
4 | (1) |
|
Part VII: Tapping the Database |
|
|
4 | (1) |
|
Part VIII: Exploring New ASP.NET 2.0 Features |
|
|
5 | (1) |
|
Part IX: The Part of Tens |
|
|
5 | (1) |
|
|
5 | (1) |
|
Napoleon Bonus Part (Get It?) --- On the CD |
|
|
6 | (1) |
|
Conventions Used In This Book |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (20) |
|
ASP.NET 2.0 --- Just Do It! |
|
|
13 | (12) |
|
Do I Need a Development Environment? |
|
|
13 | (1) |
|
Everything You Need to Get Started |
|
|
14 | (2) |
|
|
16 | (1) |
|
Understanding the Development and Testing Process |
|
|
16 | (2) |
|
Choosing an ASP.NET Web server |
|
|
16 | (1) |
|
Understanding where IIS looks for your pages |
|
|
17 | (1) |
|
Saving your page with the .aspx extension |
|
|
17 | (1) |
|
|
18 | (1) |
|
Getting Your ASP in Gear: Creating an ASP.NET Page |
|
|
18 | (2) |
|
Understanding How This Example Works |
|
|
20 | (2) |
|
Modifying, Retesting, and Creating Pages |
|
|
22 | (3) |
|
Modifying and retesting pages |
|
|
22 | (1) |
|
|
23 | (1) |
|
Converting HTML pages to ASP.NET pages |
|
|
23 | (2) |
|
Putting ASP.NET 2.0 in Its Place |
|
|
25 | (6) |
|
Understanding Simple, Static HTML |
|
|
25 | (1) |
|
Exploring How JavaScript Makes Your Pages More Interactive |
|
|
26 | (1) |
|
So How Does ASP.NET Work? How is it Different? |
|
|
27 | (2) |
|
The ASP.NET advantage --- faster, simpler, smaller |
|
|
28 | (1) |
|
And now, presenting ASP.NET 2.0 |
|
|
29 | (1) |
|
The Bigger Picture: The .NET Framework |
|
|
29 | (2) |
|
Part II: Introducing ASP.NET 2.0 |
|
|
31 | (26) |
|
Exciting New ASP.NET 2.0 Features |
|
|
33 | (6) |
|
Discovering the Big, New Features |
|
|
33 | (2) |
|
Being the master of your domain with the Master Pages feature |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
Exploring the Faster, Better Features |
|
|
35 | (3) |
|
Dancing with the database |
|
|
36 | (1) |
|
New server controls make your user interface sing! |
|
|
36 | (1) |
|
Increased security that doesn't require you to remove your shoes |
|
|
37 | (1) |
|
ASP.NET 2.0: The configurator! |
|
|
37 | (1) |
|
Navigating the Choppy Seas of Your Web Site |
|
|
38 | (1) |
|
Introducing Visual Web Developer 2005 Express |
|
|
39 | (18) |
|
Visual Web Developer 2005 Express: What Is It (Besides a Mouthful)? |
|
|
39 | (1) |
|
Accessing Resources from the Start Page |
|
|
40 | (1) |
|
|
41 | (3) |
|
|
42 | (1) |
|
Selecting the location and language |
|
|
43 | (1) |
|
Getting to Know Your Workspace |
|
|
44 | (3) |
|
|
44 | (1) |
|
|
45 | (1) |
|
The Solution Explorer window |
|
|
46 | (1) |
|
|
46 | (1) |
|
|
47 | (1) |
|
Adding Pages to Your Site |
|
|
47 | (1) |
|
Creating Your User Interface with Server Controls |
|
|
48 | (3) |
|
|
48 | (1) |
|
Setting control properties |
|
|
49 | (2) |
|
Writing Code in Response to Events |
|
|
51 | (1) |
|
Debugging, Compiling, and Running Your Web Application |
|
|
52 | (2) |
|
Using VWDE to Run the Examples in This Book |
|
|
54 | (1) |
|
Single-File Versus Code-Behind Pages |
|
|
55 | (2) |
|
Part III: Speaking the Language |
|
|
57 | (56) |
|
Juggling Information and Firing Off Functions |
|
|
59 | (16) |
|
Getting Started with Programming |
|
|
60 | (1) |
|
What is a programming language? |
|
|
60 | (1) |
|
Compiling and running a program |
|
|
60 | (1) |
|
Looking at the ASP.NET Process |
|
|
61 | (1) |
|
Understanding Web Applications |
|
|
61 | (1) |
|
Keeping Your Tags and Code Apart with Delimiters |
|
|
62 | (1) |
|
Using the ASP.NET Page Directive |
|
|
63 | (1) |
|
Creating and Using Variables |
|
|
63 | (7) |
|
|
63 | (2) |
|
Displaying variable values |
|
|
65 | (1) |
|
Can you use a variable you didn't declare? |
|
|
66 | (1) |
|
Vee have VAYS of making you declare |
|
|
67 | (1) |
|
|
67 | (2) |
|
|
69 | (1) |
|
Giving a variable a value when you create it |
|
|
70 | (1) |
|
Controlling Cantankerous Constants |
|
|
70 | (1) |
|
Keeping Your Comments to Yourself |
|
|
71 | (1) |
|
Understanding How Functions Function |
|
|
72 | (3) |
|
|
72 | (1) |
|
Let the arguments commence! |
|
|
73 | (2) |
|
Asking Questions and Jumping Through Loops |
|
|
75 | (24) |
|
Decisions, Decisions, Decisions: Using If...Then |
|
|
75 | (10) |
|
IF you want cool Web pages, THEN use conditionals |
|
|
76 | (2) |
|
Using Boolean variables with conditions |
|
|
78 | (1) |
|
Accepting inequalities as a fact of life |
|
|
79 | (1) |
|
Creating a compound If...Then |
|
|
80 | (1) |
|
Lies! All lies! Or, what to do if the condition isn't true |
|
|
81 | (1) |
|
Handling multiple conditions |
|
|
82 | (2) |
|
Developing your nesting instincts |
|
|
84 | (1) |
|
|
85 | (3) |
|
Counselor, present your case |
|
|
86 | (1) |
|
Cracking a tougher case . . . |
|
|
87 | (1) |
|
|
88 | (8) |
|
|
89 | (1) |
|
|
90 | (1) |
|
|
91 | (2) |
|
|
93 | (2) |
|
|
95 | (1) |
|
|
96 | (1) |
|
Juggling Information with Arrays |
|
|
96 | (3) |
|
Creating and using arrays |
|
|
96 | (2) |
|
Using For Each...Next with arrays |
|
|
98 | (1) |
|
Divide and Conquer: Structured Programming |
|
|
99 | (14) |
|
Simplifying Your Life: Structured Programming and Functions |
|
|
100 | (1) |
|
Giving Your Functions a Place to Live: The Script Tag |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
102 | (2) |
|
|
104 | (2) |
|
Functions in All Shapes and Sizes |
|
|
106 | (1) |
|
Creating and Using Subroutines |
|
|
107 | (1) |
|
|
108 | (1) |
|
Oh, the Places Your Variables Will Go! |
|
|
108 | (5) |
|
|
108 | (2) |
|
Two places you can use variables |
|
|
110 | (1) |
|
Understanding how scope impacts your ASP.NET pages |
|
|
110 | (3) |
|
Part IV: Classy Objects and Methodical Properties |
|
|
113 | (26) |
|
OOPs --- No Mistake Here! |
|
|
115 | (12) |
|
Looking at a Real-World Example: My Car |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
118 | (1) |
|
Using the Class to Make an Object |
|
|
119 | (1) |
|
Using the Properties and Methods in an Object |
|
|
120 | (1) |
|
Creating Multiple Instances |
|
|
120 | (2) |
|
Get Out! This Is Private Property |
|
|
122 | (2) |
|
Objects inside Objects inside |
|
|
124 | (1) |
|
Why OOP? Answer: The .NET Framework Class Libraries |
|
|
125 | (2) |
|
Cool Stuff You Can Do with ASP.NET 2.0 Objects |
|
|
127 | (12) |
|
ArrayList: The Super, Handy-Dandy, Array-Type Thingy |
|
|
127 | (4) |
|
Working over your friends |
|
|
128 | (1) |
|
Exploring additional ArrayList features |
|
|
129 | (2) |
|
Using Automatically Created Objects |
|
|
131 | (1) |
|
The Input and Output Objects: Request and Response |
|
|
131 | (4) |
|
Scribbling with Response.Write |
|
|
131 | (1) |
|
Sending the user to another page with Response.Redirect |
|
|
132 | (1) |
|
Going long for the pass with Request.QueryString |
|
|
132 | (3) |
|
The Application and Session Objects: More Variable Scope Options |
|
|
135 | (4) |
|
The application versus the session |
|
|
135 | (1) |
|
It's a bird. It's a plane. No, it's a super-global Session variable! |
|
|
136 | (1) |
|
Using even-more-super Application variables |
|
|
136 | (2) |
|
Understanding the difference between session-level and application-level variables |
|
|
138 | (1) |
|
Part V: Creating Interactive Web Applications |
|
|
139 | (102) |
|
Interfacing with Your Users |
|
|
141 | (10) |
|
Examining Web Forms and Server Controls |
|
|
141 | (6) |
|
|
142 | (2) |
|
Capturing events and changing properties |
|
|
144 | (3) |
|
Manipulating Server Control Properties |
|
|
147 | (4) |
|
Changing properties in code and in the tag |
|
|
147 | (1) |
|
Using enumeration properties to assign values |
|
|
148 | (1) |
|
Using enumeration object methods |
|
|
149 | (1) |
|
Working with subobject properties |
|
|
149 | (2) |
|
|
151 | (14) |
|
|
151 | (6) |
|
The problem: Initializing controls with a function |
|
|
152 | (1) |
|
The solution: Using the Page_Load event |
|
|
153 | (1) |
|
Page_Load: Is it triggered the first time or every time? |
|
|
154 | (3) |
|
Making Your Head Spin with Server Round-Trips |
|
|
157 | (8) |
|
A puzzling example: The no-count counter |
|
|
157 | (2) |
|
Discovering the answer to the mystery |
|
|
159 | (1) |
|
|
159 | (2) |
|
An easier way to store and retrieve page variables in ViewState |
|
|
161 | (4) |
|
Basic Server Controls: Labels, Text Boxes, and Buttons |
|
|
165 | (14) |
|
|
165 | (6) |
|
|
165 | (2) |
|
Settling a border dispute |
|
|
167 | (1) |
|
Finding the font of youth |
|
|
168 | (2) |
|
Sizing up your label with the Height and Width properties |
|
|
170 | (1) |
|
ToolTip: Don't run with scissors |
|
|
170 | (1) |
|
The Enabled and Visible properties |
|
|
171 | (1) |
|
Shadowboxing? No, Text Boxing! |
|
|
171 | (6) |
|
He's only half illiterate --- He's ReadOnly |
|
|
171 | (1) |
|
Put Tablndex A in SlotIndex B |
|
|
172 | (1) |
|
The many faces of the TextMode property |
|
|
172 | (2) |
|
The TextBox's TextChanged event and AutoPostBack property |
|
|
174 | (3) |
|
Button, Button --- Who's Got the Button? |
|
|
177 | (2) |
|
Making a List Control (And Checking It Twice) |
|
|
179 | (28) |
|
|
179 | (11) |
|
A CheckBoxList example: Know your primes |
|
|
180 | (3) |
|
Responding to the user's answer |
|
|
183 | (1) |
|
Using common CheckBoxList properties |
|
|
184 | (4) |
|
|
188 | (1) |
|
Using common CheckBox properties |
|
|
189 | (1) |
|
Radio for Help on Radio Buttons |
|
|
190 | (5) |
|
A RadioButtonList example: More gazillionaire trivia |
|
|
191 | (2) |
|
A RadioButton example: Notification options |
|
|
193 | (1) |
|
Using common RadioButtonList and RadioButton properties |
|
|
194 | (1) |
|
Your Kiss Is on My ListBox |
|
|
195 | (9) |
|
A ListBox example: The Personalize Your PC page |
|
|
195 | (3) |
|
Using common ListBox properties |
|
|
198 | (1) |
|
Using common ListBox.Items methods |
|
|
199 | (2) |
|
An Add/Remove/Clear example: The Grocery List page |
|
|
201 | (2) |
|
Searching the grocery list with FindByText |
|
|
203 | (1) |
|
Dropping In on the DropDownList |
|
|
204 | (3) |
|
A DropDownList example: Site navigation |
|
|
204 | (2) |
|
Using common DropDownList properties and methods |
|
|
206 | (1) |
|
More User Interface Goodies (And How to Make Your Own!) |
|
|
207 | (22) |
|
A Few Image, Link, and Button Controls |
|
|
207 | (8) |
|
|
208 | (1) |
|
Click me, I'm beautiful: ImageButton |
|
|
209 | (2) |
|
A button disguised as a link: LinkButton |
|
|
211 | (2) |
|
Handling the hysterical HyperLink |
|
|
213 | (2) |
|
Marking Time with the Calendar Control |
|
|
215 | (5) |
|
A Calendar example: Unborn Baby Age Calculator |
|
|
215 | (2) |
|
Using common Calendar members |
|
|
217 | (3) |
|
Doing It Yourself: User Controls |
|
|
220 | (9) |
|
Creating a reusable page header |
|
|
220 | (2) |
|
|
222 | (1) |
|
|
223 | (3) |
|
|
226 | (3) |
|
Getting It Right: Validating User Input |
|
|
229 | (12) |
|
Putting RequiredFieldValidator to Work |
|
|
230 | (2) |
|
Using RequiredFieldValidator with a text box |
|
|
230 | (1) |
|
Using RequiredFieldValidator with a drop-down list |
|
|
231 | (1) |
|
|
232 | (3) |
|
|
232 | (2) |
|
Comparing with another control |
|
|
234 | (1) |
|
Keeping the User in Range with RangeValidator |
|
|
235 | (1) |
|
Checking the range with two values |
|
|
235 | (1) |
|
Checking the range with other controls |
|
|
236 | (1) |
|
Displaying the Results with ValidationSummary |
|
|
236 | (4) |
|
Using Page.IsValid to ensure that all is well |
|
|
239 | (1) |
|
Using the ValidationSummary to clean up the page |
|
|
239 | (1) |
|
Client Versus Server Validation |
|
|
240 | (1) |
|
|
240 | (1) |
|
Part VI: Casting a Wider ASP.NET |
|
|
241 | (36) |
|
Variable Data Types: Preaching to the Converted |
|
|
243 | (10) |
|
Meeting the Elementary Data Types |
|
|
243 | (4) |
|
|
244 | (1) |
|
Storing numbers with a decimal point |
|
|
244 | (1) |
|
Storing values other than numbers |
|
|
245 | (2) |
|
Using Automatic and Explicit Type Conversion |
|
|
247 | (2) |
|
Amassing Your Conversion Function Arsenal |
|
|
249 | (2) |
|
Standard conversion functions |
|
|
249 | (1) |
|
The CType conversion function |
|
|
250 | (1) |
|
Using the Int, Val, and Str conversion functions |
|
|
251 | (1) |
|
Be Strict: Spare the Rod, Spoil the Programmer |
|
|
251 | (2) |
|
My, What Big Namespaces You Have, Mr. Framework |
|
|
253 | (8) |
|
The Great Organizer: Namespaces |
|
|
253 | (1) |
|
Sending E-Mail from Your ASP.NET 2.0 Page |
|
|
254 | (1) |
|
Finding Your Way through the Forest of Namespaces |
|
|
255 | (2) |
|
ASP.NET 2.0 --- It's in There! |
|
|
257 | (1) |
|
My Keyword! You Can't Have Any . . . |
|
|
257 | (4) |
|
Creating and deleting files |
|
|
258 | (1) |
|
|
259 | (2) |
|
Real-World Web Application Issues |
|
|
261 | (16) |
|
What's a Web Application? |
|
|
261 | (1) |
|
Creating a Virtual Folder for Your Web Application |
|
|
262 | (2) |
|
|
264 | (3) |
|
Application and Session object events |
|
|
265 | (2) |
|
Global directives: @ Import |
|
|
267 | (1) |
|
|
267 | (10) |
|
The machine.config versus web.config |
|
|
267 | (1) |
|
|
268 | (1) |
|
|
269 | (4) |
|
Another way to change your configuration |
|
|
273 | (1) |
|
Storing your application settings in the web.config file |
|
|
274 | (3) |
|
Part VII: Tapping the Database |
|
|
277 | (50) |
|
Accessing a Database with Simple Queries |
|
|
279 | (16) |
|
Building Classy Classifieds 1.0: AllAds.aspx |
|
|
279 | (1) |
|
The Import of Database Access Libraries |
|
|
280 | (1) |
|
Cool Database-Access Server Controls |
|
|
281 | (1) |
|
Getting Ready to Access the Database |
|
|
282 | (2) |
|
|
282 | (1) |
|
Creating a home for your application |
|
|
283 | (1) |
|
Web.config and the connectionStrings |
|
|
283 | (1) |
|
Retrieving and Displaying Data |
|
|
284 | (11) |
|
The SqlDataSource control and its properties |
|
|
286 | (1) |
|
The GridView control and its properties |
|
|
287 | (1) |
|
Identifying the columns to display |
|
|
287 | (2) |
|
Using GridView beautification properties |
|
|
289 | (1) |
|
|
290 | (2) |
|
|
292 | (3) |
|
Using Sophisticated Queries and Updating the Database |
|
|
295 | (32) |
|
Using Select Parameters to Narrow Your Query |
|
|
296 | (9) |
|
There's no place like home |
|
|
296 | (1) |
|
Using the QueryStringParameter |
|
|
297 | (4) |
|
Using the ControlParameter tag |
|
|
301 | (4) |
|
|
305 | (3) |
|
Binding in New Ways: Alternatives to BoundField |
|
|
308 | (3) |
|
Retrieving and Working with Data from Code |
|
|
311 | (3) |
|
Allowing the User to Update the Database |
|
|
314 | (1) |
|
Letting the User Insert a New Row |
|
|
315 | (5) |
|
Allowing the User to Edit or Delete a Selected Row |
|
|
320 | (7) |
|
Part VIII: Exploring New ASP.NET 2.0 Features |
|
|
327 | (50) |
|
|
329 | (6) |
|
Getting to Know Master Pages and Content Pages |
|
|
329 | (2) |
|
|
331 | (1) |
|
The Content Page: Jack of All Trades, Master of None |
|
|
332 | (1) |
|
Running and Testing Your Pages |
|
|
333 | (1) |
|
No Content Page Can Serve Two Masters |
|
|
334 | (1) |
|
|
335 | (12) |
|
ASP.NET TipVault: For Registered Users Only! |
|
|
335 | (1) |
|
Creating the Folder, Application, and web.config |
|
|
336 | (4) |
|
|
338 | (1) |
|
|
339 | (1) |
|
The automatically created authorization database |
|
|
339 | (1) |
|
Creating the Public Welcome Page |
|
|
340 | (1) |
|
|
341 | (2) |
|
Whooo Are You? Whooo, Whooo |
|
|
343 | (1) |
|
Enforcing Security on Private Content |
|
|
344 | (1) |
|
Putting a Sniffer's Nose out of Joint with SSL |
|
|
345 | (1) |
|
|
345 | (2) |
|
|
347 | (10) |
|
|
347 | (3) |
|
|
348 | (1) |
|
|
349 | (1) |
|
Beauty Really Is Skin Deep |
|
|
350 | (5) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Providing alternate skin definitions |
|
|
353 | (2) |
|
|
355 | (2) |
|
Your Portal to Web Parts and Web Services |
|
|
357 | (20) |
|
Taking the MyNewsNow Portal Test Drive |
|
|
358 | (2) |
|
Building Your First Web Portal Application |
|
|
360 | (5) |
|
Making Web parts out of user controls |
|
|
361 | (1) |
|
Managing and zoning the portal page |
|
|
361 | (1) |
|
|
362 | (3) |
|
|
365 | (1) |
|
Getting in the Mode for Customization |
|
|
365 | (4) |
|
Adding the mode drop-down list |
|
|
366 | (1) |
|
Ready, set, run in Design mode! |
|
|
367 | (1) |
|
Customizing parts with the EditorZone |
|
|
368 | (1) |
|
Ready, set, run in Edit mode! |
|
|
368 | (1) |
|
Exploring more editors, more zones |
|
|
369 | (1) |
|
|
370 | (7) |
|
What's so exciting about Web services? |
|
|
370 | (1) |
|
SOAP: Sliding into the next century with Web services |
|
|
371 | (1) |
|
|
372 | (1) |
|
|
373 | (1) |
|
Creating the quote-of-the-day Web part |
|
|
374 | (3) |
|
Part IX: The Part of Tens |
|
|
377 | (14) |
|
The Ten Best Places to Get ASP.NET 2.0 Answers |
|
|
379 | (8) |
|
RTFM: Read the Flippin' Manual! |
|
|
379 | (1) |
|
|
380 | (1) |
|
Review Technical Journals and Magazines |
|
|
380 | (1) |
|
Strike Up a Discussion at Online Forums and Newsgroups |
|
|
381 | (1) |
|
Browse Blogs by the Brightest and Best |
|
|
382 | (2) |
|
Stay Up for Popcorn and a Movie: ASP.NET Webcasts |
|
|
384 | (1) |
|
Wander the World Wide Web |
|
|
384 | (1) |
|
Call Microsoft Web Technical Support |
|
|
384 | (1) |
|
Make Friends with ASP.NET Geeks and Visit Their User Groups |
|
|
385 | (1) |
|
|
385 | (2) |
|
|
385 | (1) |
|
Microsoft Professional Developers Conference (PDC) |
|
|
386 | (1) |
|
|
386 | (1) |
|
|
386 | (1) |
|
|
386 | (1) |
|
The Ten Coolest Web Sites for ASP.NET 2.0 Developers |
|
|
387 | (4) |
|
It's Official: Microsoft's MSDN ASP.NET Developer Center |
|
|
387 | (1) |
|
|
388 | (1) |
|
Microsoft's GotDotNet.com |
|
|
388 | (1) |
|
|
388 | (1) |
|
|
388 | (1) |
|
|
389 | (1) |
|
ASP.NET at 4GuysFromRolla |
|
|
389 | (1) |
|
|
389 | (1) |
|
|
389 | (1) |
|
|
390 | (1) |
|
|
391 | (8) |
|
|
391 | (3) |
|
Using Visual Web Developer 2005 Express' built-in Web server |
|
|
392 | (1) |
|
Using IIS on your machine |
|
|
392 | (1) |
|
Using IIS on a corporate or hosted machine |
|
|
393 | (1) |
|
|
393 | (1) |
|
|
394 | (1) |
|
What You Can Find on the CD |
|
|
395 | (2) |
|
Napoleon Bonus Part (Get It?) |
|
|
395 | (1) |
|
Source code from the book |
|
|
395 | (2) |
|
|
397 | (2) |
|
|
399 | |
|
Bonus Part: Napoleon Bonus Part (Get It?) |
|
|
1 | (116) |
|
|
3 | (20) |
|
|
4 | (1) |
|
The Chat Room's Primary Page |
|
|
4 | (2) |
|
Brushing Up Before You Start Making Your Own Cafe |
|
|
6 | (1) |
|
What Techniques Does the Cafe Demonstrate? |
|
|
7 | (1) |
|
The Blueprint for the Cafe |
|
|
7 | (3) |
|
Building the Cafe, Brick by Brick |
|
|
10 | (1) |
|
Knocking on the Cafe Door: Default.aspx |
|
|
10 | (4) |
|
Framing Your Cafe: Cafe.aspx |
|
|
14 | (1) |
|
Speaking Your Mind: Say.aspx |
|
|
14 | (2) |
|
Sharing in the Conversation: CafeConvo.aspx |
|
|
16 | (1) |
|
Getting a Head Count: Users.aspx |
|
|
17 | (5) |
|
|
22 | (1) |
|
|
23 | (24) |
|
|
24 | (1) |
|
Classy 1.0 and Classy 2.0 |
|
|
24 | (1) |
|
|
24 | (2) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
Just a Quick Edit --- It Won't Hurt |
|
|
29 | (1) |
|
|
29 | (1) |
|
Now Where Did I Put That Ad? |
|
|
30 | (1) |
|
|
31 | (1) |
|
What Techniques Does Classy Demonstrate? |
|
|
32 | (1) |
|
Planning to Create Classy Classifieds |
|
|
32 | (4) |
|
|
36 | (1) |
|
Beginning with a Masterful Performance |
|
|
36 | (1) |
|
Home, Home on the Web: Default.aspx |
|
|
37 | (1) |
|
I Categorically Deny It: Category.aspx |
|
|
38 | (2) |
|
Delegate the Detail: Detail.aspx |
|
|
40 | (2) |
|
|
42 | (1) |
|
Confirmation Required: Confirm.aspx |
|
|
43 | (1) |
|
The Creator: PlaceAd.aspx |
|
|
44 | (1) |
|
|
45 | (1) |
|
Have You Seen This Ad? Search.aspx |
|
|
45 | (1) |
|
|
46 | (1) |
|
Collecting Visitor Feedback with the VB 2005 My.Computer.FileSystem |
|
|
47 | (10) |
|
Kicking Off the Guestbook |
|
|
47 | (1) |
|
|
48 | (2) |
|
Viewing the Guestbook's Roster |
|
|
50 | (2) |
|
Maintaining Your Guestbook |
|
|
52 | (5) |
|
More Cool ASP.NET Features and Capabilities |
|
|
57 | (20) |
|
There's Nothing Illegal about the HashTable |
|
|
57 | (3) |
|
Making Cookies with the System.Web |
|
|
60 | (5) |
|
Okay, Mr. Browser, Who Are You and What Can You Do? |
|
|
65 | (2) |
|
Asking Nicely with Request Properties |
|
|
67 | (1) |
|
Playing with VB 2005 String and Date Functions |
|
|
68 | (6) |
|
|
74 | (3) |
|
Taking Validation to the Next Level |
|
|
77 | (18) |
|
Getting the Formatting Right: RegularExpressionValidator |
|
|
77 | (4) |
|
CustomValidator: The Mod Squad Buys Soda |
|
|
81 | (5) |
|
Monkeying Around with Validation Controls from Code |
|
|
86 | (2) |
|
Summing Up Validation Controls and Their Properties |
|
|
88 | (7) |
|
ASP.NET 2.0 for Classic ASP Developers |
|
|
95 | (18) |
|
To Migrate or Not to Migrate |
|
|
96 | (1) |
|
The Overview: What's New? |
|
|
96 | (1) |
|
Going Over the Sequence of Events |
|
|
97 | (1) |
|
Setting Up Your Page Structure |
|
|
97 | (2) |
|
Making User Interaction Easy |
|
|
99 | (1) |
|
|
100 | (5) |
|
Going to the .NET Framework Class Library to find ASP Objects |
|
|
105 | (1) |
|
Configuring Your Applications |
|
|
105 | (1) |
|
Classic ASP Developer's Road Map to This Book |
|
|
106 | (7) |
|
A Crash Course in Database Basics |
|
|
113 | (4) |
|
What's a DBMS? What's a Database? |
|
|
113 | (2) |
|
Filing Your Database Info in Tables, Rows, and Columns |
|
|
115 | (1) |
|
Putting Primary Keys and Surrogate Keys to Work |
|
|
115 | (1) |
|
Giving Your Tables Healthy Relationships |
|
|
116 | (1) |
|
Understanding the SQL SELECT Statement |
|
|
117 | |