Title: Outline
1Chapter 20 - ASP .Net, Web Forms and Web Controls
Outline 20.1 Introduction20.2 Simple HTTP
Transaction 20.3 System Architecture 20.4
Creating and Running a Simple Web Form Example
20.5 Web Controls 20.5.1Â Text and Graphics
Controls 20.5.2Â AdRotator Control 20.5.3Â Valid
ation Controls20.6Â Â Session Tracking 20.6.1Â Co
okies 20.6.2Â Session Tracking with
HttpSessionState20.7 Case Study Online Guest
book 20.8 Case Study Connecting to a Database
in ASP .NET 20.9 Tracing
220.1 Introduction
- Web-Based Application Development
- Creates Web content for Web browser clients
- HyperText Markup Language (HTML)
- Client-side scripting
- Images and binary data
- Web Forms (Web Form pages)
- File extension .aspx
- ASPX (Web Form files) contain written code, event
handlers, utility methods and other supporting
code
320.2 Simple HTTP Transaction
- HyperText Transfer Protocol (HTTP)
- Defines methods and headers which allows clients
and servers exchange information in uniform way - Uniform Resource Locator (URL)
- IP address indicating the location of a resource
- All HTML documents have a corresponding URL
- Domain Name Server (DNS)
- A computer that maintains a database of hostnames
and their corresponding IP addresses
420.3 System Architecture
- Multi-tier Applications
- Web-based applications (n-tier applications)
- Tiers are logical groupings of functionality
- Information Tier (data tier or bottom tier)
- Maintains data pertaining to the applications
- Usually stores data in a relational database
management systems (RDBMS) - Middle Tier
- Acts as an intermediary between data in the
information tier and the application's clients
520.4 Creating and Running a Simple Web-Form
Example
- Visual Component
- Clickable buttons and other GUI components which
users interact - Nonvisual Component
- Hidden inputs that store any data that document
author specifies such as e-mail address
6WebTime.aspx
- 1 lt-- Fig. 20.4 WebTime.aspx --gt
- 2 lt-- A page that contains two labels --gt
- 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"WebTime.aspx.vb"
Inherits"WebTime.WebTimer" gt - 6
- 7 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 8 ltHTMLgt
- 9 ltHEADgt
- 10 lttitlegtWebTimelt/titlegt
- 11 ltmeta name"GENERATOR"
- 12 content"Microsoft Visual
Studio.NET 7.0"gt - 13 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0"gt - 14 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt - 15 ltmeta name"vs_targetSchema"
- 16 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 17 lt/HEADgt
- 18 ltbody MS_POSITIONING"GridLayout"gt
- 19 ltform id"Form1" method"post"
runat"server"gt
7WebForm1.aspx
- 1 ' Fig. 20.5 WebForm1.aspx.vb
- 2 ' The code-behind file for a page
- 3 ' that displays the current time.
- 4
- 5 Imports System
- 6 Imports System.Web
- 7 Imports System.Web.UI
- 8 Imports System.Web.UI.WebControls
- 9
- 10 Public Class WebTimer
- 11 Inherits System.Web.UI.Page
- 12
- 13 Protected WithEvents displayLabel As _
- 14 System.Web.UI.WebControls.Label
- 15
- 16 Protected WithEvents timeLabel As _
- 17 System.Web.UI.WebControls.Label
- 18
- 19 'This call is required by the Web Form
Designer.
8WebForm1.aspx
- 34 Private Sub Page_Load(ByVal sender As
System.Object, _ - 35 ByVal e As System.EventArgs) Handles
MyBase.Load - 36 'Put user code to initialize the page
here - 37 End Sub ' Page_Load
- 38 End Class ' WebTimer
9WbTime.html
- 1 lt!-- Fig. 20.6 WebTime.html
--gt - 2 lt!-- The HTML generated when WebTime is
loaded. --gt - 3
- 4 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN" gt - 5
- 6 ltHTMLgt
- 7 ltHEADgt
- 8 lttitlegtWebTimelt/titlegt
- 9 ltmeta name"GENERATOR"
- 10 Content"Microsoft Visual Studio
7.0"gt - 11 ltmeta name"CODE_LANGUAGE"
Content"Visual Basic 7.0"gt - 12 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt - 13 ltmeta name"vs_targetSchema"
- 14 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 15 lt/HEADgt
- 16
- 17 ltbody MS_POSITIONING"GridLayout"gt
- 18 ltform name"Form1" method"post"
- 19 action"WebTime.aspx" id"Form1"gt
1020.4 Creating and Running a Simple Web Form
Example
1120.4 Creating and Running a Simple Web Form
Example
1220.4 Creating and Running a Simple Web Form
Example
1320.4 Creating and Running a Simple Web Form
Example
1420.4 Creating and Running a Simple Web Form
Example
1520.4 Creating and Running a Simple Web Form
Example
1620.5 Web Controls
- Text and Graphics Control
- Label, Button, TextBox, Image RadioButtonList and
DropDownList - AdRotator Control
- Randomly selects an image to display and then
generates a hyperlink to the Web page associated
with that image - Validation Controls
- Determines whether the data in another Web
control are in the proper format - Validates user input
1720.5 Web Controls
18Controls.aspx
- 1 lt-- Fig. 20.17 Conrols.aspx --gt
- 2 lt-- Demonstrates web controls --gt
- 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"Controls.aspx.vb"
- 6 Inherits"Controls.WebForm1"
- 7 enableViewStateFalse"
EnabledSessionStateFalse" gt - 8
- 9 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 10 ltHTMLgt
- 11 ltHEADgt
- 12 lttitlegtWebForm1lt/titlegt
- 13 ltmeta name"GENERATOR"
- 14 content"Microsoft Visual
Studio.NET 7.0"gt - 15 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0"gt - 16 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt - 17 ltmeta name"vs_targetSchema"
- 18 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 19 lt/HEADgt
19Controls.aspx
- 37 ltaspImage id"UserLabel"
style"Z-INDEX 103 - 38 LEFT 42px POSITION absolute
TOP 135px" - 39 runat"server" Width"439px"
Height"28px" - 40 ImageUrl"images/user.png"gt
- 41 lt/aspImagegt
- 42
- 43 ltaspLabel id"FillLabel"
style"Z-INDEX 104 - 44 LEFT 50px POSITION absolute
TOP 189px" - 45 runat"server" Width"225px"
ForeColor"Lime" - 46 Font-Size"Medium"gt
- 47 Please fill out the fields
below. - 48 lt/aspLabelgt
- 49
- 50 ltaspImage id"FirstImage"
style"Z-INDEX 105 - 51 LEFT 49px POSITION absolute
TOP 224px" - 52 runat"server" Width"84px"
Height"36px" - 53 ImageUrl"images/fname.png"gt
- 54 lt/aspImagegt
- 55
20Controls.aspx
- 67 ltaspTextBox id"EmailTextBox"
style"Z-INDEX 108 - 68 LEFT 147px POSITION absolute
TOP 284px" - 69 runat"server" Width"112px"
Height"18px"gt - 70 lt/aspTextBoxgt
- 71
- 71 ltaspImage id"LastImage"
style"Z-INDEX 109 - 73 LEFT 292px POSITION absolute
TOP 227px" - 74 runat"server" Width"77px"
Height"33px" - 75 ImageUrl"images/lname.png"gt
- 76 lt/aspImagegt
- 77
- 78 ltaspImage id"PhoneImage"
style"Z-INDEX 110 - 79 LEFT 292px POSITION absolute
TOP 273px" - 80 runat"server" Width"80px"
Height"30px" - 81 ImageUrl"images/phone.png"gt
- 82 lt/aspImagegt
- 83
- 84 ltaspTextBox id"LastTextBox"
style"Z-INDEX 111 - 85 LEFT 400px POSITION absolute
TOP 232px"
21Controls.aspx
- 100 ltaspImage id"PublicationImage"
style"Z-INDEX 114 - 101 LEFT 50px POSITION absolute
TOP 356px" - 102 runat"server" Width"435px"
Height"27px" - 103 ImageUrl"images/downloads.png"gt
- 104 lt/aspImagegt
- 105
- 106 ltaspLabel id"Booklabel"
style"Z-INDEX 115 - 107 LEFT 54px POSITION absolute
TOP 411px" - 108 runat"server" Width"348px"
Height"23px" - 109 ForeColor"Lime"
Font-Size"Medium"gt - 110 Which book would you like
information about? - 111 lt/aspLabelgt
- 112
- 113 ltaspDropDownList
id"BookDropDownList" - 114 style"Z-INDEX 116 LEFT 60px
POSITION - 115 absolute TOP 448px"
runat"server" - 116 Width"326px" Height"29px"gt
- 117
- 118 ltaspListItem Value"XML How to
Program 1e"gt
22Controls.aspx
- 135 ltaspListItem Value"C How to
Program 3e"gt - 136 C How to Program 3e
- 137 lt/aspListItemgt
- 138 lt/aspDropDownListgt
- 139
- 140 ltaspHyperLink id"BooksHyperLink"
- 141 style"Z-INDEX 117 LEFT 64px
POSITION - 142 absolute TOP 486px"
runat"server" - 143 Width"385px" Height"22px"
- 144 NavigateUrl"http//www.deitel.co
m"gt - 145 Click here to view more
information about our books. - 146 lt/aspHyperLinkgt
- 147
- 148 ltaspImage id"OperatingImage"
style"Z-INDEX 118 - 149 LEFT 53px POSITION absolute
TOP 543px" - 150 runat"server" Width"431px"
Height"32px" - 151 ImageUrl"images/os.png"gt
- 152 lt/aspImagegt
- 153
23Controls.aspx
- 167 ltaspRadioButtonList
id"OperatingRadioButtonList" - 168 style"Z-INDEX 125 LEFT 65px
POSITION - 169 absolute TOP 624px"
runat"server" - 170 Height"122px" Width"155px"gt
- 171
- 172 ltaspListItem Value"Windows
NT"gt - 173 Windows NT
- 174 lt/aspListItemgt
- 175 ltaspListItem Value"Windows
2000"gt - 176 Windows 2000
- 177 lt/aspListItemgt
- 178 ltaspListItem Value"Windows
XP"gt - 179 Windows XP
- 180 lt/aspListItemgt
- 181 ltaspListItem Value"Linux"gt
- 182 Linux
- 183 lt/aspListItemgt
- 184 ltaspListItem Value"Other"gt
- 185 Other
2420.5 Web Controls
25CountryRotator.aspx
- 1 lt-- Fig 20.18 CountryRotator.aspx
--gt - 2 lt-- A Web Form that demonstrates class
AdRotator. --gt - 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"CountryRotator.aspx.vb"
- 6 Inherits"AdRotator.AdRotator"gt
- 7
- 8 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 9 ltHTMLgt
- 10 ltHEADgt
- 11 lttitlegtWebForm1lt/titlegt
- 12 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 13 name"GENERATOR"gt
- 14 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 15 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 16 ltmeta name"vs_targetSchema"
- 17 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 18 lt/HEADgt
- 19 ltbody background
26CountryRotator.aspx
- 30 ltaspadrotator id"countryRotator"
style"Z-INDEX 102 - 31 LEFT 36px POSITION absolute
TOP 47px" - 32 runat"server" Height"72px"
Width"108px" - 33 AdvertisementFile"AdRotatorInfor
mation.xml"gt - 34 lt/aspadrotatorgt
- 35
- 36 lt/formgt
- 37 lt/bodygt
- 38 lt/HTMLgt
- Â
- Fig. 20
27Country.aspx
- 1 ' Fig. 20.19 Country.aspx.vb
- 2 ' The code-behind file for a page that
- 3 ' demonstrates the AdRotator class.
- 4
- 5 Public Class AdRotator
- 6 Inherits System.Web.UI.Page
- 7
- 8 Protected WithEvents displayLabel As _
- 9 System.Web.UI.WebControls.Label
- 10
- 11 Protected WithEvents countryRotator As _
- 12 System.Web.UI.WebControls.AdRotator
- 13
- 14 ' This call is required by the Web Form
Designer. - 15 Private Sub InitializeComponent()
- 16 End Sub
- 17
- 18 Private Sub Page_Init(ByVal sender As
System.Object, _ - 19 ByVal e As System.EventArgs) Handles
MyBase.Init
2820.5 Web Controls
29AdRotatorInformation.xml
- 1 lt?xml version"1.0" encoding"utf-8"?gt
- 2
- 3 lt!-- Fig. 20.20 AdRotatorInformation.xml
--gt - 4 lt!-- XML file containing advertisement
information. --gt - 5
- 6 ltAdvertisementsgt
- 7 ltAdgt
- 8 ltImageUrlgtimages/us.pnglt/ImageUrlgt
- 9 ltNavigateUrlgt
- 10 http//www.odci.gov/cia/publications/
factbook/geos/us.html - 11 lt/NavigateUrlgt
- 12 ltAlternateTextgtUnited States
Informationlt/AlternateTextgt - 13 ltImpressionsgt1lt/Impressionsgt
- 14 lt/Adgt
- 15
- 16 ltAdgt
- 17 ltImageUrlgtimages/france.pnglt/ImageUrlgt
- 18 ltNavigateUrlgt
- 19 http//www.odci.gov/cia/publications
/factbook/geos/fr.html
30AdRotatorInformation.xml
- 34 ltAdgt
- 35 ltImageUrlgtimages/italy.pnglt/ImageUrlgt
- 36 ltNavigateUrlgt
- 37 http//www.odci.gov/cia/publications
/factbook/geos/it.html - 38 lt/NavigateUrlgt
- 39 ltAlternateTextgtItaly
Informationlt/AlternateTextgt - 40 ltImpressionsgt1lt/Impressionsgt
- 41 lt/Adgt
- 42
- 43 ltAdgt
- 44 ltImageUrlgtimages/spain.pnglt/ImageUrlgt
- 45 ltNavigateUrlgt
- 46 http//www.odci.gov/cia/publications/
factbook/geos/sp.html - 47 lt/NavigateUrlgt
- 48 ltAlternateTextgtSpain
Informationlt/AlternateTextgt - 49 ltImpressionsgt1lt/Impressionsgt
- 50 lt/Adgt
- 51
- 52 ltAdgt
31AdRotatorInformation.xml
- 70 ltAdgt
- 71 ltImageUrlgtimages/senegal.pnglt/ImageUrlgt
- 72 ltNavigateUrlgt
- 73 http//www.odci.gov/cia/publications
/factbook/geos/sg.html - 74 lt/NavigateUrlgt
- 75 ltAlternateTextgtSenegal
Informationlt/AlternateTextgt - 76 ltImpressionsgt1lt/Impressionsgt
- 77 lt/Adgt
- 78
- 79 ltAdgt
- 80 ltImageUrlgtimages/sweden.pnglt/ImageUrlgt
- 81 ltNavigateUrlgt
- 82 http//www.odci.gov/cia/publications
/factbook/geos/sw.html - 83 lt/NavigateUrlgt
- 84 ltAlternateTextgtSweden
Informationlt/AlternateTextgt - 85 ltImpressionsgt1lt/Impressionsgt
- 86 lt/Adgt
- 87
- 88 ltAdgt
32Generator.aspx
- 1 lt-- Fig. 20.21 Generator.aspx
--gt - 2 lt-- A Web Form demonstrating the use of
validators. --gt - 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"Generator.aspx.vb"
- 6 Inherits"WordGenerator.Generator"7
enableViewStateFalse" EnableSessionStateFa
lse" gt8 - 9 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 10 ltHTMLgt
- 11 ltHEADgt
- 12 lttitlegtWebForm1lt/titlegt
- 13 ltmeta name"GENERATOR"
- 14 content"Microsoft Visual
Studio.NET 7.0"gt - 15 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0"gt - 16 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt - 17 ltmeta name"vs_targetSchema"
- 18 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 19 lt/HEADgt
- 20 ltbody MS_POSITIONING"GridLayout"gt
- 21 ltform id"Form1" method"post"
runat"server"gt
33Generator.aspx
- 35 ltaspRegularExpressionValidator
id"phoneNumberValidator" - 36 style"Z-INDEX 105 LEFT
204px POSITION absolute - 37 TOP 44px" runat"server"
ErrorMessage - 38 "The phone number must be in the
form 555-4567." - 39 ControlToValidate"phoneTextBox"
- 40 ValidationExpression"\d3-\d4
"gt - 41 lt/aspRegularExpressionValidatorgt
- 42
- 43 ltaspRequiredFieldValidator
id"phoneInputValidator" - 44 style"Z-INDEX 104 LEFT
207px POSITION - 45 absolute TOP 81px"
runat"server" - 46 ErrorMessage
- 47 "Please enter a phone
number." - 48 ControlToValidate"phoneTextBox"gt
- 49 lt/aspRequiredFieldValidatorgt
- 50
- 51 ltaspButton id"submitButton"
style"Z-INDEX 103 - 52 LEFT 38px POSITION absolute
TOP 77px" - 53 runat"server" Text"Submit"gt
34Generator.aspx.vb
- 1 ' Fig. 20.22 Generator.aspx.vb
- 2 ' The code-behind file for a page that
- 3 ' generates words when given a phone number.
- 4
- 5 Imports System.Web.UI.WebControls
- 6
- 7 Public Class Generator
- 8 Inherits System.Web.UI.Page
- 9
- 10 Protected WithEvents phoneInputValidator
As _ - 11 RequiredFieldValidator
- 12
- 13 Protected WithEvents phoneNumberValidator
As _ - 14 RegularExpressionValidator
- 15
- 16 Protected WithEvents promptLabel As Label
- 17 Protected WithEvents outputTextBox As
TextBox - 18 Protected WithEvents submitButton As
Button - 19 Protected WithEvents phoneTextBox As
TextBox
35Generator.aspx.vb
- 36 ' generate words for first 3 digits
- 37 outputTextBox.Text "Here are the
words for the" _ - 38 "first three digits" vbCrLf
- 39
- 40 ComputeWords(number.Substring(0,
3), "") - 41 outputTextBox.Text vbCrLf
- 42
- 43 ' generate words for last 4 digits
- 44 outputTextBox.Text "Here are the
words for the" _ - 45 "last 4 digits" vbCrLf
- 46
- 47 ComputeWords(number.Substring(3),
"") - 48
- 49 outputTextBox.Visible True
- 50 End If
- 51
- 52 End Sub ' Page_Load
- 53
- 54 Private Sub ComputeWords(ByVal number As
String, _
36Generator.aspx.vb
- 71 ' determine number, call ComputeWord
recursively - 72 Select Case current
- 73
- 74 ' 0 can be q or z
- 75 Case 0
- 76 ComputeWords(number,
temporaryWord "q") - 77 ComputeWords(number,
temporaryWord "z") - 78
- 79 ' 1 has no letter associated
with it - 80 Case 1
- 81 ComputeWords(number,
temporaryWord "") - 82
- 83 ' 2 can be a, b or c
- 84 Case 2
- 85 ComputeWords(number,
temporaryWord "a") - 86 ComputeWords(number,
temporaryWord "b") - 87 ComputeWords(number,
temporaryWord "c") - 88
- 89 ' 3 can be d, e or f
37Generator.aspx.vb
- 101 ' 5 can be j, k or l
- 102 Case 5
- 103 ComputeWords(number,
temporaryWord "j") - 104 ComputeWords(number,
temporaryWord "k") - 105 ComputeWords(number,
temporaryWord "l") - 106
- 107 ' 6 can be m, n or o
- 108 Case 6
- 109 ComputeWords(number,
temporaryWord "m") - 110 ComputeWords(number,
temporaryWord "n") - 111 ComputeWords(number,
temporaryWord "o") - 112
- 113 ' 7 can be p, r or s
- 114 Case 7
- 115 ComputeWords(number,
temporaryWord "p") - 116 ComputeWords(number,
temporaryWord "r") - 117 ComputeWords(number,
temporaryWord "s") - 118
- 119 ' 8 can be t, u or v
3820.5 Web Controls
3920.5 Web Controls
40Generator.html
- 1 lt!-- Fig. 20.23 Generator.html
--gt - 2 lt!-- The HTML page that is sent to the
client browser. --gt - 3
- 4 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN" gt - 5 ltHTMLgt
- 6 ltHEADgt
- 7 lttitlegtWebForm1lt/titlegt
- 8 ltmeta name"GENERATOR"
- 9 content"Microsoft Visual Studio
7.0"gt - 10 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0" gt - 11 ltmeta name"vs_defaultClientScript"
- 12 content"JavaScript"gt
- 13 ltmeta name"vs_targetSchema"
- 14 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 15 lt/HEADgt
- 16
- 17 ltbody MS_POSITIONING"GridLayout"gt
- 18
- 19 ltform name"Form1" method"post"
41Generator.html
- 30 ltspan id"phoneNumberValidator"
- 31 controltovalidate"phoneTextBox"
- 32 errormessage
- 33 "The phone number must be in
the form 555-4567." - 34 evaluationfunction
- 35 "RegularExpressionValidatorEva
luateIsValid" - 36 validationexpression"\d3-\d4
" - 37 style"colorRedZ-INDEX106LEFT
217px - 38 POSITIONabsoluteTOP73pxvis
ibilityhidden"gt - 39 The phone number must be in
the form 555-4567. - 40 lt/spangt
- 41
- 42 ltinput name"phoneTextBox"
type"text" - 43 id"phoneTextBox"
- 44 style"Z-INDEX 102 LEFT 16px
- 45 POSITION absolute TOP 52px"
/gt - 46
- 47 ltinput type"submit"
name"submitButton" - 48 value"Submit"
42Generator.html
- 57 ltspan id"phoneInputValidator"
- 58 controltovalidate"phoneTextBox"
- 59 errormessage"Please enter a
phone number." - 60 evaluationfunction
- 61 "RequiredFieldValidatorEvaluat
eIsValid" - 62 initialvalue""
style"colorRedZ-INDEX105 - 63 LEFT217pxPOSITIONabsoluteT
OP47px - 64 visibilityhidden"gtPlease
enter a phone number. - 65 lt/spangt
- 66
- 67 ltspan id"promptLabel"
style"Z-INDEX 101 - 68 LEFT 16px POSITION absolute
TOP 23px"gt - 69 Please enter a phone number in
the form 555-4567 - 70 lt/spangt
- 71
- 72 ltscript language"javascript"gt
- 73 lt!--
- 74 var Page_Validators new Array(
- 75 document.all"phoneNumberValid
ator",
43Generator.html
- 89 if ( typeof(Page_ValidationVer
) "undefined" ) - 90 alert(
- 91 "Unable to find script
library " - 92 "'/aspnet_client/system_
web/'" - 93 "'1_0_3215_11/WebUIValid
ation.js'. " - 94 "Try placing this file
manually, or " - 95 "reinstall by running
'aspnet_regiis -c'.") - 96 else if ( Page_ValidationVer
! "125" ) - 97 alert(
- 98 "This page uses an
incorrect version " - 99 "of WebUIValidation.js.
The page " - 100 "expects version 125. "
- 101 "The script library is
" - 102 Page_ValidationVer
".") - 103 else
- 104 ValidatorOnLoad()
- 105
- 106
- 107 function ValidatorOnSubmit()
4420.6 Session Tracking
- Cookies
- Text file stored by a Web site on a individuals
computer that allows the site to track the
actions of the visitor - Records sites that the user visits and identifies
shopping preferences - Cookies can store name-value pairs
- Web Server can never access cookies created
outside the domain associated with that server - HttpSessionState
- HttpSessionState objects can store any type of
objects (not just Strings) as attribute values
45OptionsPage.aspx
- 1 lt-- Fig 20.24 OptionsPage.aspx
--gt - 2 lt-- allows clients to select a programming
language --gt - 3 lt-- to get recommendations
--gt - 4
- 5 lt_at_ Page Language"vb" AutoEventWireup"false
" - 6 Codebehind"OptionsPage.aspx.vb"
- 7 Inherits"Cookies.Cookie"gt
- 8
- 9 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 10 ltHTMLgt
- 11 ltHEADgt
- 12 lttitlegtCookieslt/titlegt
- 13 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 14 name"GENERATOR"gt
- 15 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 16 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 17 ltmeta name"vs_targetSchema"
- 18 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 19 lt/HEADgt
46OptionsPage.aspx
- 36 ltaspListItem Value"C"gtClt/asp
ListItemgt - 37 ltaspListItem Value"C"gtClt/aspLi
stItemgt - 38 ltaspListItem Value"C"gtClt/as
pListItemgt - 39 ltaspListItem Value"Python"gtPyth
onlt/aspListItemgt - 40 lt/aspradiobuttonlistgt
- 41
- 42 ltasphyperlink id"recommendationsLi
nk" - 43 style"Z-INDEX 110 LEFT 42px
POSITION - 44 absolute TOP 90px"
runat"server" - 45 Visible"False" NavigateUrl
- 46 "RecommendationPage.aspx"gt
- 47 Click here to get book
recommendations - 48 lt/asphyperlinkgt
- 49
- 50 ltasphyperlink id"languageLink"
style"Z-INDEX - 51 109 LEFT 42px POSITION
absolute - 52 TOP 55px" runat"server"
Visible"False" - 53 NavigateUrl"OptionsPage.aspx"gt
- 54 Click here to choose another
language
47OptionsPage.aspx
- 1 ' Fig. 20.25 OptionsPage.aspx.vb
- 2 ' Page that allows the user to choose a
different language - 3
- 4 Imports System.Web.UI.WebControls
- 5
- 6 Public Class Cookie
- 7 Inherits System.Web.UI.Page
- 8 Protected WithEvents languageLink As
HyperLink - 9 Protected WithEvents recommendationsLink
As HyperLink - 10 Protected WithEvents promptLabel As Label
- 11 Protected WithEvents LanguageList As
RadioButtonList - 12 Protected WithEvents welcomeLabel As
Label - 13 Protected WithEvents submitButton As
Button - 14 Private books New Hashtable()
- 15
- 16 ' Visual Studio .NET generated code
- 17
- 18 Private Sub Page_Init(ByVal sender As
System.Object, _ - 19 ByVal e As System.EventArgs) Handles
MyBase.Init
48OptionsPage.aspx
- 31 Private Sub Page_Load(ByVal sender As
System.Object, _ - 32 ByVal e As System.EventArgs) Handles
MyBase.Load - 33
- 34 If IsPostBack Then
- 35
- 36 ' if postback is True, user has
submitted information - 37 ' display welcome message and
appropriate hyperlinks - 38 welcomeLabel.Visible True
- 39 languageLink.Visible True
- 40 recommendationsLink.Visible True
- 41
- 42 ' hide option information
- 43 submitButton.Visible False
- 44 promptLabel.Visible False
- 45 LanguageList.Visible False
- 46
- 47 If (LanguageList.SelectedItem Is
Nothing) False Then - 48 welcomeLabel.Text " " _
- 49 LanguageList.SelectedItem.Text
.ToString "."
49OptionsPage.aspx
- 62 ' if choice was made by user
- 63 If (LanguageList.SelectedItem Is
Nothing) False Then - 64 language LanguageList.SelectedItem
.ToString() - 65 ISBN books(language).ToString()
- 66
- 67 ' create cookie, name/value pair is
- 68 ' language chosen and ISBN number
from Hashtable - 69 cookie New HttpCookie(language,
ISBN) - 70
- 71 ' add cookie to response,
- 72 ' thus placing it on user's machine
- 73 Response.Cookies.Add(cookie)
- 74 End If
- 75
- 76 End Sub ' submitButton_Click
- 77 End Class ' Cookie
5020.6 Session Tracking
5120.6 Session Tracking
52RecomendationPage.aspx
- 1 lt-- Fig 20.26 RecommendationPage.aspx
--gt - 2 lt-- displays book recommendations using
cookies --gt - 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"RecommendationPage.aspx.vb"
- 6 Inherits"Cookies.Recommendations"gt
- 7
- 8 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 9 ltHTMLgt
- 10 ltHEADgt
- 11 lttitlegtBook recommendationslt/titlegt
- 12 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 13 name"GENERATOR"gt
- 14 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 15 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 16 ltmeta name"vs_targetSchema"
- 17 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 18 lt/HEADgt
- 19 ltbody MS_POSITIONING"GridLayout"gt
53RecomedationsPage.aspx.vb
- 1 ' Fig. 20.27 RecommendationsPage.aspx.vb
- 2 ' Reading cookie data from the client
- 3
- 4 Imports System.Web.UI.WebControls
- 5
- 6 Public Class Recommendations
- 7 Inherits Page
- 8 Protected WithEvents recommendationsLabel
As Label - 9 Protected WithEvents booksListBox As
ListBox - 10
- 11 ' Visual Studio .NET generated code
- 12
- 13 Private Sub Page_Init(ByVal sender As
System.Object, _ - 14 ByVal e As System.EventArgs) Handles
MyBase.Init - 15
- 16 InitializeComponent()
- 17
- 18 ' retrieve client's cookies
- 19 Dim cookies As HttpCookieCollection
54RecomedationsPage.aspx.vb
- 35 ' if no cookies besides ID, no
options were - 36 ' chosen. no recommendations made
- 37 Else
- 38 recommendationsLabel.Text "No
Recommendations" - 39 booksListBox.Items.Clear()
- 40 booksListBox.Visible False
- 41 End If
- 42
- 43 End Sub ' Page_Init
- 44
- 45 Private Sub Page_Load(ByVal sender As
System.Object, _ - 46 ByVal e As System.EventArgs) Handles
MyBase.Load - 47
- 48 'Put user code to initialize the page
here - 49 End Sub ' Page_Load
- 50 End Class ' Recommendations
5520.6 Session Tracking
56OptionsPage.aspx
- 1 lt-- Fig. 20.29 OptionsPage.aspx --gt
- 2 lt-- displays a list of book options --gt
- 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"OptionsPage.aspx.vb"
- 6 Inherits"Sessions.Options2"gt
- 7
- 8 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 9 ltHTMLgt
- 10 ltHEADgt
- 11 lttitlegtSession Trackinglt/titlegt
- 12 ltmeta name"GENERATOR"
- 13 content"Microsoft Visual
Studio.NET 7.0"gt - 14 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0"gt - 15 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt - 16 ltmeta name"vs_targetSchema"
- 17 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 18 lt/HEADgt
- 19 ltbody MS_POSITIONING"GridLayout"gt
57OptionsPage.aspx
- 33 ltaspLabel id"idLabel"
style"Z-INDEX 107 - 34 LEFT 42px POSITION absolute
TOP 66px" - 35 runat"server"gt
- 36 lt/aspLabelgt
- 37
- 38 ltaspradiobuttonlist
id"LanguageList" style"Z-INDEX 105 - 39 LEFT 43px POSITION absolute
TOP 69px" runat"server"gt - 40
- 41 ltaspListItem Value"Visual
Basic .NET" - 42 Selected"True"gtVisual Basic
.NETlt/aspListItemgt - 43
- 44 ltaspListItem Value"C"gtClt/asp
ListItemgt - 45 ltaspListItem Value"C"gtClt/aspLi
stItemgt - 46 ltaspListItem Value"C"gtClt/as
pListItemgt - 47 ltaspListItem Value"Python"gtPyth
onlt/aspListItemgt - 48 lt/aspradiobuttonlistgt
- 49
- 50 ltasphyperlink id"recommendationsLi
nk" style"Z-INDEX 104 - 51 LEFT 42px POSITION absolute
TOP 172px"
58OptionsPage.aspx
- 64 ltasplabel id"welcomeLabel"
style"Z-INDEX 102 - 65 LEFT 42px POSITION absolute
TOP 32px" - 66 runat"server" Visible"False"
Font-Bold"True" - 67 Font-Size"Large"gtWelcome to
sessions! You selected - 68 lt/asplabelgt
- 69
- 70 ltaspbutton id"submitButton"
style"Z-INDEX 101 - 71 LEFT 42px POSITION absolute
TOP 207px" - 72 runat"server" Text"Submit"gt
- 73 lt/aspbuttongt
- 74
- 75 lt/formgt
- 76 lt/bodygt
- 77 lt/HTMLgt
59OptionsPge2.aspx.vb
- 1 ' Fig. 20.30 OptionsPge2.aspx.vb
- 2 ' A listing of programming languages,
- 3 ' cookie is created based on choice made.
- 4
- 5 Imports System.Web.UI.WebControls
- 6
- 7 Public Class Options2
- 8 Inherits System.Web.UI.Page
- 9 Protected WithEvents languageLink As
HyperLink - 10 Protected WithEvents recommendationsLink
As HyperLink - 11 Protected WithEvents LanguageList As
RadioButtonList - 12 Protected WithEvents idLabel As Label
- 13 Protected WithEvents timeOutLabel As
Label - 14 Protected WithEvents promptLabel As Label
- 15 Protected WithEvents welcomeLabel As
Label - 16 Protected WithEvents submitButton As
Button - 17 Private books New Hashtable()
- 18
- 19 ' Visual Studio .NET generated code
60OptionsPge2.aspx.vb
- 34 Private Sub Page_Load(ByVal sender As
System.Object, _ - 35 ByVal e As System.EventArgs)
Handles MyBase.Load - 36
- 37 If IsPostBack Then
- 38
- 39 ' if postback is True, user has
submitted information - 40 ' display welcome message and
appropriate hyperlinks - 41 welcomeLabel.Visible True
- 42 languageLink.Visible True
- 43 recommendationsLink.Visible True
- 44
- 45 ' hide option information
- 46 submitButton.Visible False
- 47 promptLabel.Visible False
- 48 LanguageList.Visible False
- 49
- 50 If (LanguageList.SelectedItem Is
Nothing) False Then - 51 welcomeLabel.Text " " _
- 52 LanguageList.SelectedItem.Text
.ToString "."
61OptionsPge2.aspx.vb
- 67 Private Sub submitButton_Click(ByVal
sender As System.Object, _ - 68 ByVal e As System.EventArgs) Handles
submitButton.Click - 69
- 70 Dim language, ISBN As String
- 71
- 72 ' if choice was made by user
- 73 If (LanguageList.SelectedItem Is
Nothing) False Then - 74 language LanguageList.SelectedItem
.ToString() - 75 ISBN books(language).ToString()
- 76
- 77 ' add name/value pair to Session
- 78 Session.Add(language, ISBN)
- 79 End If
- 80
- 81 End Sub ' submitButton_Click
- 82 End Class ' Options2
6220.6 Session Tracking
6320.6 Session Tracking
64RecomendationPage.aspx
- 1 lt-- Fig. 20.32 RecommendationPage.aspx
--gt - 2 lt-- displays book recommendations based on
session --gt - 3 lt-- information
--gt - 4
- 5 lt_at_ Page Language"vb" AutoEventWireup"false
" - 6 Codebehind"RecommendationPage.aspx.vb"
- 7 Inherits"Sessions.Recommendations" gt
- 8
- 9 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 10 ltHTMLgt
- 11 ltHEADgt
- 12 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 13 name"GENERATOR"gt
- 14 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 15 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 16 ltmeta name"vs_targetSchema"
- 17 content"http//schemas.microsoft.co
m/intellisense/ie5"gt - 18 lt/HEADgt
- 19 ltbody MS_POSITIONING"GridLayout"gt
65RecommendationsPage.aspx.vb
- 1 ' Fig. 20.33 RecommendationPage.aspx.vb
- 2 ' Reading cookie data from the client
- 3
- 4 Imports System.Web.UI.WebControls
- 5
- 6 Public Class Recommendations
- 7 Inherits Page
- 8 Protected WithEvents recommendationLabel
As Label - 9 Protected WithEvents booksListBox As
ListBox - 10
- 11 ' Visual Studio .NET generated code
- 12
- 13 Private Sub Page_Init(ByVal sender As
System.Object, _ - 14 ByVal e As System.EventArgs) Handles
MyBase.Init - 15
- 16 InitializeComponent()
- 17
- 18 Dim i As Integer
- 19 Dim keyName As String
66RecommendationsPage.aspx.vb
- 31 ' use current key to display
- 32 ' Session's name/value pairs
- 33 booksListBox.Items.Add(keyName
_ - 34 " How to Program. ISBN "
_ - 35 Session(keyName))
- 36 Next
- 37 Else
- 38 recommendationLabel.Text "No
Recommendations" - 39 booksListBox.Visible False
- 40 End If
- 41 End Sub ' Page_Init
- 42
- 43 Private Sub Page_Load(ByVal sender As
System.Object, _ - 44 ByVal e As System.EventArgs) Handles
MyBase.Load - 45
- 46 'Put user code to initialize the page
here - 47 End Sub ' Page_Load
- 48 End Class ' Recommendations
6720.7 Case Study Online Guest book
- Guest Book
- Data submitted on the guest-book form often are
stored in a database located on the Web servers
machine
6820.7 Case Study Online Guest book
69GuestbookPage.aspx
- 1 lt-- Fig 20.35 GuestbookPage.aspx
--gt - 2 lt-- controls and layout for guestbook
application --gt - 3
- 4 lt_at_ Page Language"vb" AutoEventWireup"false
" - 5 Codebehind"GuestbookPage.aspx.vb"
- 6 Inherits"Guestbook.Guestbook"gt
- 7
- 8 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 9 ltHTMLgt
- 10 ltHEADgt
- 11 lttitlegtGuestBooklt/titlegt
- 12 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 13 name"GENERATOR"gt
- 14 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 15 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 16 ltmeta content
- 17 "http//schemas.microsoft.com/intell
isense/ie5" - 18 name"vs_targetSchema"gt
- 19 lt/HEADgt
70GuestbookPage.aspx
- 35 ltaspButton id"submitButton"
style"Z-INDEX 109 - 36 LEFT 187px POSITION absolute
TOP 319px" - 37 runat"server" Text"Submit"gt
- 38 lt/aspButtongt
- 39
- 40 ltaspDataGrid id"DataGrid1"
style"Z-INDEX 108 - 41 LEFT 39px POSITION absolute
TOP 372px" - 42 runat"server" Width"541px"
Height"95px" - 43 HorizontalAlign"Left"
BorderColor"E7E7FF" - 44 BorderWidth"1px"
GridLines"None" CellPadding"3" - 45 PageSize"5"gt
- 46
- 47 ltSelectedItemStyle
ForeColor"F7F7F7" - 48 BackColor"738A9C"gt
- 49 lt/SelectedItemStylegt
- 50 ltAlternatingItemStyle
BackColor"F7F7F7"gt - 51 lt/AlternatingItemStylegt
- 52 ltItemStyle HorizontalAlign"Left"
Width"100px" - 53 ForeColor"4A3C8C"
BackColor"E7E7FF"gt
71GuestbookPage.aspx
- 67 ltaspTextBox id"messageTextBox"
style"Z-INDEX 107 - 68 LEFT 135px POSITION absolute
TOP 181px" - 69 runat"server" Width"449px"
Height"113px" - 70 TextMode"MultiLine"gt
- 71 lt/aspTextBoxgt
- 72
- 73 ltaspTextBox id"emailTextBox"
style"Z-INDEX 106 - 74 LEFT 135px POSITION absolute
TOP 132px" - 75 runat"server" Width"449px"gt
- 76 lt/aspTextBoxgt
- 77
- 78 ltaspTextBox id"nameTextBox"
style"Z-INDEX 105 - 79 LEFT 135px POSITION absolute
TOP 85px" - 80 runat"server" Width"449px"gt
- 81 lt/aspTextBoxgt
- 82
- 83 ltaspLabel id"messageLabel"
style"Z-INDEX 104 - 84 LEFT 39px POSITION absolute
TOP 167px" - 85 runat"server" Width"51px"gtTell
the world
72GuestbookPage.aspx
- 1 ' Fig. 20.36 GuestbookPage.aspx
- 2 ' The code-behind file for the guest book
page. - 3
- 4 Imports System.Web.UI.WebControls
- 5 Imports System.Data
- 6 Imports System.IO
- 7
- 8 ' allows users to leave message
- 9 Public Class Guestbook
- 10 Inherits System.Web.UI.Page
- 11
- 12 Protected WithEvents promptLabel As Label
- 13 Protected WithEvents nameLabel As Label
- 14 Protected WithEvents emailLabel As Label
- 15 Protected WithEvents messageLabel As
Label - 16 Protected WithEvents dataGrid As DataGrid
- 17 Protected WithEvents submitButton As
Button - 18 Protected WithEvents messageTextBox As
TextBox - 19 Protected WithEvents emailTextBox As
TextBox
73GuestbookPage.aspx
- 34 ' clear text boxes user can enter new
input - 35 Private Sub clearButton_Click(ByVal
sender As System.Object, _ - 36 ByVal e As System.EventArgs) Handles
clearButton.Click - 37
- 38 nameTextBox.Text ""
- 39 emailTextBox.Text ""
- 40 messageTextBox.Text ""
- 41 End Sub ' clearButton_Click
- 42
- 43 Public Sub FillMessageTable()
- 44 Dim table As New DataTable()
- 45 Dim reader As StreamReader
- 46 Dim separator As Char()
- 47 Dim message As String
- 48 Dim parts As String()
- 49
- 50 table dataView.Table
- 51
- 52 table.Columns.Add("Date")
74GuestbookPage.aspx
- 66 While message ltgt ""
- 67
- 68 ' split String into four parts
- 69 parts message.Split(separator)
- 70
- 71 ' load data into table
- 72 table.LoadDataRow(parts, True)
- 73
- 74 ' read one line from file
- 75 message reader.ReadLine()
- 76 End While
- 77
- 78 dataGrid.DataBind() ' update grid
- 79
- 80 reader.Close()
- 81 End Sub ' FillMessageTable
- 82
- 83 ' add the user's entry to the guestbook
- 84 Private Sub submitButton_Click(ByVal
sender As System.Object, _
75- 100 ' clear textboxes and close stream
- 101 nameTextBox.Text ""
- 102 emailTextBox.Text ""
- 103 messageTextBox.Text ""
- 104 guestbook.Close()
- 105
- 106 FillMessageTable()
- 107 End Sub ' submitButton_Click
- 108 End Class ' Guestbook
7620.7 Case Study Online Guest book
7720.8 Case Study Connecting to a Database in ASP
.NET
- ASP .NET
- Login.aspx
- Retrieves valid user name for this site through
Login.mdb and all the author information is
retrieved from Books.mdb database
78Login.aspx
- 1 lt-- Fig. 20.37 login.aspx
--gt - 2 lt-- controls and formatting for login page
--gt - 3
- 4 lt_at_ Register TagPrefix"Header"
TagName"ImageHeader" - 5 Src"ImageHeader.ascx" gt
- 6
- 7 lt_at_ Page Language"vb" AutoEventWireup"false
" - 8 Codebehind"login.aspx.vb"
- 9 Inherits"Database.Login"gt
- 10
- 11 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 12 ltHTMLgt
- 13 ltHEADgt
- 14 lttitlegtlt/titlegt
- 15 ltmeta content"Microsoft Visual
Studio.NET 7.0" - 16 name"GENERATOR"gt
- 17 ltmeta content"Visual Basic 7.0"
name"CODE_LANGUAGE"gt - 18 ltmeta content"JavaScript"
name"vs_defaultClientScript"gt - 19 ltmeta name"vs_targetSchema"
79Login.aspx
- 36 ltaspdropdownlist id"nameList"
style"Z-INDEX 105 - 37 LEFT 92px POSITION absolute
TOP 185px" - 38 runat"server" Width"154px"gt
- 39 lt/aspdropdownlistgt
- 40
- 41 ltasplabel id"passwordLabel"
style"Z-INDEX 102 - 42 LEFT 15px POSITION absolute
TOP 220px" - 43 runat"server"gtPassword
- 44 lt/asplabelgt
- 45
- 46 ltasptextbox id"passwordTextBox"
style"Z-INDEX 103 - 47 LEFT 92px POSITION absolute
TOP 221px" - 48 runat"server"
TextMode"Password"gt - 49 lt/asptextboxgt
- 50
- 51 ltaspcustomvalidator
id"invalidPasswordValidator" - 52 style"Z-INDEX 107 LEFT
262px POSITION - 53 absolute TOP 221px"
runat"server" - 54 ControlToValidate"passwordTextBo
x" Font-Bold"True"
80Login.aspxImageHeader.ascx
- 71 ltHeaderImageHeader
id"ImageHeader1" runat"server"gt - 72 lt/HeaderImageHeadergt
- 73
- 74 lt/formgt
- 75 lt/bodygt
- 76 lt/HTMLgt
1 lt-- Fig. 20.38 ImageHeader.ascx
--gt 2 lt-- Listing for the header user
control --gt 3 4 lt_at_ Control Language"vb"
AutoEventWireup"false" 5
Codebehind"ImageHeader.ascx.vb" 6
Inherits"Database.ImageHeader" 7
TargetSchema"http//schemas.microsoft.com/intelli
sense/ie5" gt 8 9 ltaspImage id"Image1"
runat"server" 10 ImageUrl"http//localhost
/Database/bug2bug.png"gt 11 lt/aspImagegt
81Login.aspx.vb
- 1 ' Fig. 20.39 Login.aspx.vb
- 2 ' The code-behind file for the page that
logs the user in. - 3
- 4 Imports System
- 5 Imports System.Collections
- 6 Imports System.ComponentModel
- 7 Imports System.Data
- 8 Imports System.Data.OleDb
- 9 Imports System.Drawing
- 10 Imports System.Web
- 11 Imports System.Web.SessionState
- 12 Imports System.Web.UI
- 13 Imports System.Web.UI.WebControls
- 14 Imports System.Web.UI.HtmlControls
- 15 Imports System.Web.Security
- 16
- 17 Public Class Login
- 18 Inherits System.Web.UI.Page
- 19
82Login.aspx.vb
- 31 Protected WithEvents OleDbDataAdapter1 As
OleDbDataAdapter - 32 Protected WithEvents OleDbSelectCommand1
As OleDbCommand - 33 Protected WithEvents OleDbInsertCommand1
As OleDbCommand - 34 Protected WithEvents OleDbUpdateCommand1
As OleDbCommand - 35 Protected WithEvents OleDbDeleteCommand1
As OleDbCommand - 36 Protected WithEvents OleDbConnection1 As
OleDbConnection - 37 Protected WithEvents promptLabel As Label
- 38 Protected dataReader As OleDbDataReader
- 39
- 40 ' Visual Studio .NET generated code
- 41
- 42 Private Sub Page_Init(ByVal sender As
System.Object, _ - 43 ByVal e As System.EventArgs) Handles
MyBase.Init - 44
- 45 InitializeComponent()
- 46
- 47 ' if page loads due to postback,
process information - 48 ' otherwise, page is loading for first
time, so - 49 ' do nothing
83Login.aspx.vb
- 67 ' catch error if database cannot be
opened - 68 Catch exception As OleDbException
- 69 Response.Write("Unable to open
database!") - 70
- 71 ' close database
- 72 Finally
- 73 ' close database connection
- 74 OleDbConnection1.Close()
- 75 End Try
- 76 End If
- 77 End Sub ' Page_Init
- 78
- 79 ' validate user name and password
- 80 Private Sub invalidPasswordValidator_Serve
rValidate( _ - 81 ByVal source As Object, _
- 82 ByVal args As ServerValidateEventArgs)
_ - 83 Handles invalidPasswordValidator.Server
Validate - 84
- 85 ' open database and check password
84Login.aspx.vb
- 101 ' if password user provided is
correct create - 102 ' authentication ticket for user
and redirect - 103 ' user to Authors.aspx otherwise
set IsValid to false - 104 If args.Value dataReader.GetString
(1) Then - 105 FormsAuthentication.SetAuthCookie
( _ - 106 Request.Form("namelist"),
False) - 107 Session.Add("name", _
- 108 Request.Form("nameList").T
oString()) - 109 Response.Redirect("Authors.aspx")
- 110 Else
- 111 args.IsValid False
- 112
- 113 End If
- 114
- 115 ' display error if unable to open
database - 116 Catch exception As OleDbException
- 117 Response.Write("Unable to open
database!") - 118
- 119 ' close database
8520.8 Case Study Connecting to a Database in ASP
.NET
8620.8 Case Study Connecting to a Database in ASP
.NET
87Authors.aspx
- 1 lt-- Fig. 20.40 Authors.aspx
--gt - 2 lt-- displays book titles based on author
name --gt - 3 lt-- from database
--gt - 4
- 5 lt_at_ Page Language"vb" AutoEventWireup"false
" - 6 Codebehind"Authors.aspx.vb"
- 7 Inherits"Database.Authors"gt
- 8
- 9 lt_at_ Register TagPrefix"Header"
TagName"ImageHeader" - 10 Src"ImageHeader.ascx" gt
- 11
- 12 lt!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN"gt - 13 ltHTMLgt
- 14 ltHEADgt
- 15 lttitlegtAuthorslt/titlegt
- 16 ltmeta name"GENERATOR"
- 17 content"Microsoft Visual
Studio.NET 7.0"gt - 18 ltmeta name"CODE_LANGUAGE"
content"Visual Basic 7.0"gt - 19 ltmeta name"vs_defaultClientScript"
content"JavaScript"gt
88Authors.aspx
- 32 ltEditItemStyle
BackColor"White"gtlt/EditItemStylegt - 33 ltAlternatingItemStyle
ForeColor"Black" - 34 BackColor"LightGoldenrodYello
w"gt - 35 lt/AlternatingItemStylegt
- 36 ltItemStyle BackColor"White"gtlt/It
emStylegt - 37 ltHeaderStyle BackColor"LightGree
n"gtlt/HeaderStylegt - 38 ltPagerStyle NextPageText"Next
ampgt" - 39 PrevPageText"amplt
Previous"gt - 40 lt/PagerStylegt
- 41 lt/aspDataGridgt
- 42
- 43 ltaspButton id"Button1"
style"Z-INDEX 104 - 44 LEFT 29px POSITION absolute
TOP 188px" - 45 runat"server" Width"78px"
Text"Select"gt - 46 lt/aspButtongt
- 47
- 48 ltaspDropDownList id"nameList"
style"Z-INDEX 103 - 49 LEFT 90px POSITION absolute
TOP 157px" - 50 runat"server" Width"158px"
Height"22px"gt
Slide