| Acknowledgments | xv |
| Introduction | xvii |
Part I | ASP.NET Basics | |
Chapter 1 | ASP.NET Language Structure | 3 |
| Page Structure | 4 |
| Defining Your Own Procedures | 12 |
| Page | 17 |
| Page_Load Event | 17 |
| Page_UnLoad Event | 18 |
| IsPostBack Property | 18 |
| IsValid Property | 18 |
| Compiler Directives | 19 |
| @Page Directive | 19 |
| @Import Directive | 20 |
| @OutputCache Directive | 20 |
| Quiz Sample Page | 21 |
Chapter 2 | HTML Server Controls | 29 |
| HTMLAnchor Control | 30 |
| HTMLTable, HTMLTableRow, and HTMLTableCell Controls | 36 |
| HTMLForm and Form Input Controls | 49 |
| HTMLForm Control | 49 |
| Input Controls | 50 |
| Submitting the Form | 57 |
| Form Sample Page | 58 |
| HTMLInputFile Control | 67 |
Chapter 3 | Basic Web Server Controls | 71 |
| Label Control | 72 |
| TextBox Control | 80 |
| Button Control | 85 |
| LinkButton Control | 90 |
| ImageButton Control | 92 |
| CheckBox Control | 96 |
| RadioButton Control | 100 |
| HyperLink Control | 103 |
| Image Control | 105 |
Chapter 4 | Data List Web Server Controls | 107 |
| CheckBoxList Control | 108 |
| RadioButtonList Control | 124 |
| DropDownList Control | 126 |
| ListBox Control | 130 |
| DataGrid Control | 134 |
| Repeater Control | 151 |
Chapter 5 | Other Web Server Controls | 159 |
| Calendar Control | 160 |
| AdRotator Control | 173 |
| Validation Controls | 181 |
| RequiredFieldValidator Control | 181 |
| CompareValidator Control | 186 |
| RangeValidator Control | 191 |
| CustomValidator Control | 194 |
| ValidationSummary Control | 197 |
Part II | Extra Controls and Classes | |
Chapter 6 | IE Web Controls | 203 |
| TreeView Control | 204 |
| ToolBar Control | 220 |
| TabStrip and MultiPage Controls | 240 |
Chapter 7 | User Controls | 249 |
| ZipCodeLookUp Control | 251 |
| LogIn Control | 259 |
| BulletList Control | 265 |
| FixedPageText Control | 270 |
Chapter 8 | Request and Response Objects | 277 |
| Request Object | 278 |
| QueryString Collection | 278 |
| Form Collection | 280 |
| Browser Object | 283 |
| ServerVariables Collection | 286 |
| AcceptTypes Collection | 289 |
| Headers Object | 291 |
| Visitor and Referrer Information | 293 |
| SaveAs Method | 295 |
| Response Object | 296 |
| Cookies | 297 |
Chapter 9 | Additional Classes | 301 |
| Encoding and Decoding | 302 |
| Page Caching | 305 |
| Random Numbers | 307 |
Part III | Working with Data | |
Chapter 10 | System.Data and System.Data.OLEDB Namespaces | 313 |
| OLEDBConnection Class | 314 |
| OLEDBCommand Class | 316 |
| OLEDBTransaction Class | 318 |
| OLEDBDataAdapter Class | 320 |
| DataSet Class | 321 |
| Simple Sample Application | 324 |
| Browse ASP.NET Page | 331 |
| View ASP.NET Page | 342 |
| Add ASP.NET Page | 345 |
| Edit ASP.NET Page | 349 |
Chapter 11 | System.Data.SQLClient Namespace | 357 |
| Connecting to a SQL Server Database | 358 |
| Manipulating Data in a SQL Server Database | 359 |
| Retrieving Data from a SQL Server Database | 360 |
| Chat Sample Site | 360 |
| Chat Page | 364 |
| Add To Thread Page | 372 |
| Add Page | 375 |
Part IV | Advanced Issues | |
Chapter 12 | E-Mail | 379 |
| Sending a Simple E-Mail Message | 380 |
| SmtpMail and MailMessage Classes | 381 |
| Attaching a File | 382 |
| Sending an HTML E-Mail Message | 383 |
| File Request Sample Site Page | 383 |
| Product Info Sample Site Page | 388 |
Chapter 13 | Application Issues | 393 |
| Creating an ASP.NET Application | 394 |
| Maintaining Session State | 395 |
| Maintaining Application State | 397 |
| Application and Session Objects Sample Application | 398 |
| Global.asax File | 405 |
| Global.asax Sample Page | 407 |
| Web.Config File | 410 |
Chapter 14 | Working with IIS and Page Directives | 413 |
| WWW Service Properties | 414 |
| Web Site Properties | 414 |
| Performance Properties | 418 |
| ISAPI Filters Property | 419 |
| Home Directory Properties | 420 |
| Documents | 421 |
| Custom Errors | 422 |
| Web Sites Within IIS | 423 |
| Adding a Web Site | 424 |
| Web Site Properties | 428 |
| Multiple Sites on the same IP Address | 428 |
| Web Site Properties Sheet | 428 |
| Home Directory Properties | 430 |
| Virtual Directories | 431 |
| Folder and File Properties | 434 |
| ASP.NET Applications | 435 |
| Configuring an ASP.NET Application | 435 |
Chapter 15 | Error Handling | 439 |
| No Error Handling | 440 |
| Resume Next | 443 |
| On Error Goto Handler | 445 |
| Resume from Handler | 447 |
| Try/Catch Code Block | 448 |
| Err Object | 450 |
| Using the CustomErrors Section of Web.Config | 451 |
Chapter 16 | Code Behind and Code Libraries | 455 |
| Code Behind Files | 456 |
| More Info Request Sample Page | 460 |
| Support Sample Tool | 468 |
| Include Files | 477 |
Chapter 17 | Creating Web Services | 481 |
| Simple Web Service | 482 |
| Web Service Code | 483 |
| Testing Your Web Service | 488 |
| Referencing a Web Service | 491 |
| Client Test Page | 493 |
| Zip Code Web Service | 495 |
| Zip Code Web Service | 496 |
| Consuming ASP.NET Application | 501 |
Chapter 18 | Security | 505 |
| Authentication Control | 506 |
| IP Address Restrictions | 512 |
| Secure Communications Through SSL | 514 |
| Client Certificates | 516 |
Chapter 19 | Developing with Visual Studio.NET | 523 |
| Creating an ASP.NET Application in Visual Studio.NET | 524 |
| Development Windows | 527 |
| Working with ASP.NET Pages in Visual Studio.NET | 536 |
| Debugging in Visual Studio.NET | 540 |
Chapter 20 | ASP.NET Mobile Web SDK | 545 |
| Developing Mobile ASP.NET | 546 |
| Getting the ASP.NET Mobile Web SDK | 547 |
| Mobile ASP.NET Page Structure | 549 |
| Mobile Web Controls | 551 |
| Label and TextView Controls | 551 |
| Link Control | 554 |
| Call Control | 557 |
| Image Control | 558 |
| TextBox Control | 562 |
| Command Control | 564 |
| SelectionList Control | 566 |
| Messenger Application | 568 |
| Application Walk-Through | 569 |
| Mobile ASP.NET Code | 574 |
Part V | ASP.NET in Action | |
Chapter 21 | Sample Application: Product Catalog | 593 |
| Walk-Through | 594 |
| Access Back-End Database | 602 |
| ASP.NET Code | 603 |
| Home Page | 603 |
| Products Page | 609 |
| Product Page | 616 |
| Employee Directory Page | 627 |
Chapter 22 | Sample Application: Shopping Cart | 631 |
| Walk-Through | 632 |
| Access Back-End Database | 640 |
| ASP.NET Code | 640 |
| Home Page | 640 |
| Product Page | 642 |
| Shopping Cart Page | 647 |
| Check Out Page | 656 |
| Order Status Page | 666 |
Chapter 23 | Sample Application: Working with Customers | 671 |
| Walk-Through | 672 |
| Access Back-End Database | 676 |
| ASP.NET Code | 677 |
| FAQ Page | 678 |
| Product Page | 683 |
| New Product Notification Page | 685 |
| Utility Page | 687 |
| Customer Feedback Page | 696 |
Appendix A | ASP.NET VB Language Quick Reference | 699 |
| Abs | 700 |
| Asc | 700 |
| Conversion Methods (CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr) | 701 |
| Chr | 701 |
| DateAdd | 702 |
| DateDiff | 703 |
| DatePart | 703 |
| DateSerial | 704 |
| Day | 705 |
| Do...Loop | 705 |
| Fix | 706 |
| For...Each | 706 |
| For...Next | 707 |
| FormatCurrency | 707 |
| FormatDateTime | 708 |
| FormatNumber | 708 |
| FormatPercent | 709 |
| Hex | 710 |
| Hour | 710 |
| If | 711 |
| InStr | 712 |
| InStrRev | 712 |
| Int | 713 |
| IsDate | 713 |
| IsNumeric | 714 |
| LCase | 714 |
| Left | 715 |
| Len | 715 |
| LTrim | 716 |
| Mid | 716 |
| Minute | 717 |
| Month | 717 |
| MonthName | 718 |
| Now | 718 |
| Oct | 719 |
| Replace | 719 |
| Right | 720 |
| RTrim | 720 |
| Second | 721 |
| Select...Case | 721 |
| Space | 722 |
| Sqrt | 722 |
| StrComp | 723 |
| TimeOfDay | 724 |
| TimeSerial | 724 |
| Today | 724 |
| Trim | 725 |
| Ucase | 725 |
| Weekday | 726 |
| WeekdayName | 726 |
| Year | 727 |
| Index | 729 |