330 likes | 536 Views
Asp.NET Core Vaidation Controls. ASP.NET Validation Controls (Introduction). The ASP.NET validation controls can be used to validate data on the client, the server, or both Client-side validation is performed using automatically generated JavaScript
E N D
ASP.NET Validation Controls (Introduction) • The ASP.NET validation controls can be used to validate data on the client, the server, or both • Client-side validation is performed using automatically generated JavaScript • Server-side validation is performed using VB or C# code in the proper event handler • Server-side validation is always enabled while client-side validation is optionally enabled
ASP.NET Validation Controls (Introduction) • If client-side validation is enabled, we don’t postback until the client ‘thinks’ the values are valid • Always validate on the server-side too to thwart those hackers doing a post on their own
ASP.NET Validation Controls (Server Processing Model 1) • Validation controls apply their rules and validate a corresponding control • Call the Page.Validate() method to force the validation controls to execute • This is usually not necessary • Test Page.IsValid to determine whether the page has valid data or not
ASP.NET Validation Controls (Server Processing Model 2) • Page states • Controls are initialized and populated when the page is loaded • After the page loads, the controls are validated and the Page.IsValid property is set • The Page.Validators property contains results of each control’s validator • Each item in the collection implements IValidator
Checking the Validators (Example) • Display the validation messages: For Each v In Page.Validators Response.Write(v.ErrorMessage) Next foreach (Ivalidator v in Page.Validators) { Response.Write(v.ErrorMessage) }
ASP.NET Validation Controls (Concepts) • Set the ControlToValidate property the control instance that will be validated • Set EnableClientScript to enable client-side validation • ASP will generate the necessary JavaScript • Set the ErrorMessage property to the error message that will appear in the validation control
ASP.NET Validation Controls (RequiredFieldValidator and RangeValidator) • RequiredFieldValidator checks that a control has a value • RangeValidator checks that a controls value is within a valid range • Set the MinimumValue and MaximumValue properties to the valid range • A control with no valid is considered valid • Use with the RequiredFieldValidator to prevent this • Set the Type property to define the data type to be stored in the control to validate
ASP.NET Validation Controls (CompareValidator) • The CompareValidator validates that the values of two other control instances are the same • Set the ControlToValidate and ControlToCompare properties • Optionally use a RequiredFieldValidator so that empty controls will not be valid
ASP.NET Validation Controls (CustomValidator) • The CustomValidator control allows you to easily create custom and client script and server event handlers • Set the ControlToValidate as usual • Set the ClientValidationFunction to the name of the JavaScript function appearing on the client • Server-side validation is automatic • You must write the code for the ServerValidate event handler
ASP.NET Validation Controls(CustomValidator) • The client validation function must accept two arguments • The first contains the object that fired the event • The second contains the event data
ASP.NET Validation Controls(CustomValidator) (Example Client) function validateLength(src,args) { if (args.Value.length <=6) { args.IsValid = true; document.title = "true=" + args.Value.length; } else { args.IsValid = false; document.title = "false" + args.Value.length; } }
ASP.NET Validation Controls (RegularExpressionValidator) • It validates another control instance against a regular expression • The regular expression is stored in the ValidationExpression property
ASP.NET Validation Controls(CustomValidator) (Example Client) Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByValargs As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate If args.Value.Length > 6 Then args.IsValid = True Else args.IsValid = False End If End Sub
Regular Expressions (Introduction) • Regular expressions are used throughout computer science and programming languages as a means of pattern matching • Patterns are matched using a regular expression engine • You generally don't run the engine directly • Different implementations have different "flavors”
Regular Expressions (Implementations) • Some consider Perl 5 as the basis or standard for regular expressions • .NET supports regular expressions • JavaScript supports regular expression • UNIX scripting languages support regular expressions • And of course XML supports them
Regular Expressions (Literal Values) • The most simple of regular expressions will match a literal value • By default, regular expressions are case sensitive • The regular expression "cat" contains three literal characters • It will match the following patterns • "concatenate" • "the cat ran away"
Regular Expressions (Quantifiers) • Quantifiers denote how many times a character or pattern can repeat • Quantifiers (list) • * (0 or more) • + (1 or more) • ? (0 or 1)
Quantifiers (Example) • 1?5? • 1 can appear 0-1 times and 5 can appear 0-1 times • This pattern also matches an empty string because 1 or 5 can appear 0 times
Quantifiers (Numeric Range) • Quantifiers allow us to specify how many times a pattern can occur • Numeric range quantifiers appear in curly braces • {n} Must occur exactly n times • {n,m} Must occur between n and m times • {n,} Must occur n or greater times
Special Characters (Introduction) • Some characters (*, ?, +, and others) have special meaning when creating regular expressions • These characters are called metacharacters • To include these characters as literal characters in a regular expression, they must be escaped • The \ is the escape character
Special Characters (List) • \n • \r • \t • \\ • \| • \- • \^ • \? • \* • \+ • \{ • \} • \( • \) • \[ • \] • linefeed • carriage return • tab • The backward slash \ • The vertical bar | • The hyphen - • The caret ^ • The question mark ? • The asterisk * • The plus sign + • The open curly brace { • The close curly brace } • The open paren ( • The close paren ) • The open square bracket [ • The close square bracket ]
Special Characters (.) • The dot (.) matches any character (except for the newline character) • Thus, the following would match any character followed by the digit 0.0
Character Classes (List 1) • \smatches a space • \S matches any character that is not a space • \d matches any digit • \D matches any character that is not a digit • \w matches a word • \W matches any character sequence that is not a word
User Defined Character Classes (1) • We can tell the regular expression engine to match a range of characters • Square brackets surround the range • Only one character can appear in the range
User Defined Character Classes (2) • A hyphen can appear in a character class to denote a range • Multiple ranges can appear in a character class • The order of ranges is not significant • Examples • A name beginning with a letter followed by any sequence of upper-case or lower-chase characters
Negation • The caret "^" is the negation character when used in a character class • A "q" followed by any sequence of characters that is not a "u"
Start of Pattern and End of Pattern • Anchors are used to match a position • "^" matches the start of a pattern • "$" matches the end of the pattern
Alternation • Alternation is basically a logical or • The vertical bar is the alternation symbol • Example: • The following matches "cat" or "dog" • <xs:pattern value="cat|dog" />
.NET and Regular Expressions • The System.Text.RegularExpressions namespace contains classes designed to match regular expressions against a string • A Match object is returned by a pattern-matching operation
Testing a Regular Expression • The following statement runs a regular expression against a string and returns a Match: Dim Result As _ System.Text.RegularExpressions. _ Match Result = _System.Text.RegularExpressions. _Regex.Match(txtString.Text, _txtPattern.Text)