ASP.NET Tutorial/Validation/RangeValidator — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:57, 26 мая 2010
Содержание
- 1 asp:RangeValidator is converted to JavaScript code after loading in client side
- 2 Birthday range
- 3 Manual Validation
- 4 RangeValidator checks whether the value falls between a minimum and maximum value
- 5 RangeValidator for number and date
- 6 Set Minimum/Maximum Value, ErrorMessage, ControlToValidate, EnableClientScript for asp:RangeValidator (C#)
- 7 Use asp:RangeValidator to check the value range in an asp:textbox
- 8 Using the RangeValidator control to test an integer value
- 9 Using the RangeValidator control to test a string date value (C#)
- 10 Using the RangeValidator control to test a string date value (VB.net)
asp:RangeValidator is converted to JavaScript code after loading in client side
<source lang="csharp">
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="MyPage" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
Your age: <asp:TextBox ID="age" runat="server" Columns="4"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="age" ErrorMessage="Age must be between 0 and 150" MaximumValue="150" MinimumValue="0" Type="Integer"></asp:RangeValidator><asp:Label ID="results" runat="server"></asp:Label>
<asp:Button ID="btnSubmit" runat="server" Text="Click Me" />
</form>
</body> </html> File: Default.aspx.vb
Partial Class MyPage
Inherits System.Web.UI.Page Protected Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click If Page.IsValid Then results.Text = "Input is valid..." Else results.Text = "Input is not valid..." End If End Sub
End Class</source>
Birthday range
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Login" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Simple Login Page</title>
</head> <body>
<form id="form1" runat="server">
Username:
<asp:TextBox id="usernameTextBox" runat="server" /> <asp:RequiredFieldValidator id="usernameReq" runat="server" ControlToValidate="usernameTextBox" ErrorMessage="Username is required!" SetFocusOnError="True" /> Password and Confirmation:
<asp:TextBox id="passwordTextBox" runat="server" TextMode="Password" /> <asp:RequiredFieldValidator id="passwordReq" runat="server" ControlToValidate="passwordTextBox" ErrorMessage="Password is required!" SetFocusOnError="True" Display="Dynamic" /> <asp:TextBox id="confirmPasswordTextBox" runat="server" TextMode="Password" /> <asp:RequiredFieldValidator id="confirmPasswordReq" runat="server" ControlToValidate="confirmPasswordTextBox" ErrorMessage="Password confirmation is required!" SetFocusOnError="True" Display="Dynamic" /> <asp:CompareValidator id="comparePasswords" runat="server" ControlToCompare="passwordTextBox" ControlToValidate="confirmPasswordTextBox" ErrorMessage="Your passwords do not match up!" Display="Dynamic" /> Birth Date:
<asp:TextBox id="birthDateTextBox" runat="server" /> <asp:RangeValidator id="birthDateRangeTest" runat="server" Type="Date" ControlToValidate="birthDateTextBox" MinimumValue="1/1/1970" MaximumValue="12/31/1979" ErrorMessage="You must"ve been born in the 1970s!" /> <asp:Button id="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click" />
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Login : System.Web.UI.Page {
protected void submitButton_Click(object sender, EventArgs e) { if (Page.IsValid) { submitButton.Text = "Valid"; } else { submitButton.Text = "Invalid!"; } }
}</source>
Manual Validation
<source lang="csharp">
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ManualValidation" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Manual Validation</title>
</head> <body>
<form id="form1" runat="server">
A number (1 to 10): <asp:TextBox id="txtValidated" runat="server"></asp:TextBox> <asp:RangeValidator id="RangeValidator" runat="server" ErrorMessage="This Number Is Not In The Range" ControlToValidate="txtValidated" MaximumValue="10" MinimumValue="1" Type="Integer" EnableClientScript="False"></asp:RangeValidator>
Not validated: <asp:TextBox id="txtNotValidated" runat="server"></asp:TextBox>
<asp:Button id="cmdOK" runat="server" Text="OK" OnClick="cmdOK_Click" Width="36px"></asp:Button>
<asp:Label id="lblMessage" runat="server" EnableViewState="False"></asp:Label>
</form>
</body> </html> File: Default.aspx.cs
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class ManualValidation : System.Web.UI.Page {
protected void cmdOK_Click(object sender, EventArgs e) { string errorMessage = "Mistakes found:
"; bool pageIsValid = true; foreach (BaseValidator ctrl in this.Validators) { if (!ctrl.IsValid) { pageIsValid = false; errorMessage += ctrl.ErrorMessage + "
"; TextBox ctrlInput = (TextBox)this.FindControl(ctrl.ControlToValidate); errorMessage += " * Failed: "; errorMessage += ctrlInput.Text + "
"; } } if (!pageIsValid) lblMessage.Text = errorMessage; }
}</source>
RangeValidator checks whether the value falls between a minimum and maximum value
<source lang="csharp">
You must set five properties when using this control: ControlToValidate: The ID of the form field being validated. Text: The error message. MinimumValue: The minimum value. MaximumValue: The maximum value. Type: The type of comparison.
Possible values are String, Integer, Double, Date, and Currency.
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show RangeValidator</title>
</head> <body>
<form id="form1" runat="server">
<asp:Label id="lblAge" Text="Age:" AssociatedControlID="txtAge" Runat="server" /> <asp:TextBox id="txtAge" Runat="server" /> <asp:RangeValidator id="reqAge" ControlToValidate="txtAge" Text="(Invalid Age)" MinimumValue="5" MaximumValue="100" Type="Integer" Runat="server" /> <asp:Button id="btnSubmit" Text="Submit" Runat="server" />
</form>
</body> </html></source>
RangeValidator for number and date
<source lang="csharp">
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Untitled Page</title>
</head> <body>
<form id="form1" runat="server">
Enter a number between 1 and 20:
<asp:TextBox ID="txtNumber" runat="server"></asp:TextBox> <asp:RangeValidator ID="rangeNum" runat="server" ControlToValidate="txtNumber" MinimumValue="1" MaximumValue="20" Type="Integer" SetFocusOnError="true" Text="Please enter number between 1 and 20" /> Enter a valid date from 2006:
<asp:TextBox ID="txtDate" runat="server"></asp:TextBox> <asp:RangeValidator ID="rangeDate" runat="server" ControlToValidate="txtDate" CultureInvariantValues="true" MinimumValue="2006/01/01" MaximumValue="2006/12/31" Type="Date" SetFocusOnError="true" Text="Please enter a valid date from 2006" /> <asp:Button ID="btnSubmit" Text="Click this to test validation" runat="server" />
</form>
</body> </html></source>
Set Minimum/Maximum Value, ErrorMessage, ControlToValidate, EnableClientScript for asp:RangeValidator (C#)
<source lang="csharp">
File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ValidationTest" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Validation Test</title>
</head> <body>
<form id="form1" runat="server">
A number (1 to 10): <asp:TextBox id="txtValidated" runat="server"></asp:TextBox> <asp:RangeValidator id="RangeValidator" runat="server" ErrorMessage="This Number Is Not In The Range" ControlToValidate="txtValidated" MaximumValue="10" MinimumValue="1" Type="Integer" EnableClientScript="False"></asp:RangeValidator> Not validated: <asp:TextBox id="txtNotValidated" runat="server"></asp:TextBox>
<asp:Button id="cmdOK" runat="server" Text="OK" OnClick="cmdOK_Click" Width="46px"></asp:Button>
<asp:Label id="lblMessage" runat="server" EnableViewState="False" Font-Bold="True" ForeColor="Red"></asp:Label>
</form>
</body> </html>
File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class ValidationTest : System.Web.UI.Page {
protected void cmdOK_Click(object sender, EventArgs e) { if (!Page.IsValid) return; lblMessage.Text = "cmdOK_Click event handler executed."; }
}</source>
Use asp:RangeValidator to check the value range in an asp:textbox
<source lang="csharp">
<html><body>
<form runat="server"> <asp:Label id="lblMessage" runat="server" />
<asp:Panel id="Panel1" runat="server">
City, State, ZIP (5-digit): |
<asp:TextBox id="tbCity" runat="server" />, <asp:TextBox id="tbState" runat="server" size=2 /> <asp:TextBox id="tbZIP" runat="server" size=5 /> |
<asp:Button id="Submit" runat="server" text="Add" /> |
</asp:Panel> </form>
</body></html></source>
Using the RangeValidator control to test an integer value
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
Protected Sub Button1_Click(sender As Object, e As EventArgs) Label1.Text = "Passwords match" End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>CompareFieldValidator</title>
</head> <body>
<form id="Form1" runat="server"> Age: <asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" Runat="server" ControlToValidate="TextBox1" Type="Integer" ErrorMessage="You must be between 30 and 40" MaximumValue="40" MinimumValue="30"></asp:RangeValidator> <asp:Button ID="Button1" OnClick="Button1_Click" Runat="server" Text="Login"></asp:Button> <asp:Label ID="Label1" Runat="server"></asp:Label> </form>
</body> </html></source>
Using the RangeValidator control to test a string date value (C#)
<source lang="csharp">
<%@ Page Language="C#" %> <script runat="server">
protected void Page_Load(object sender, EventArgs e) { RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString(); RangeValidator1.MaximumValue = DateTime.Now.AddDays(14).ToShortDateString(); } protected void Calendar1_SelectionChanged(object sender, EventArgs e) { TextBox1.Text = Calendar1.SelectedDate.ToShortDateString(); } protected void Button1_Click(object sender, EventArgs e) { if (Page.IsValid) { Label1.Text = "You are set to arrive on: " + TextBox1.Text.ToString(); } }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Date Validation Check</title>
</head> <body>
<form id="form1" runat="server"> Arrival Date: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="select a date within the next two weeks." ControlToValidate="TextBox1" Type="Date"></asp:RangeValidator>
Select your arrival date:
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged"></asp:Calendar> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label> </form>
</body> </html></source>
Using the RangeValidator control to test a string date value (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) RangeValidator1.MinimumValue = DateTime.Now.ToShortDateString() RangeValidator1.MaximumValue = DateTime.Now.AddDays(14).ToShortDateString() End Sub Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, _ ByVal e As System.EventArgs) TextBox1.Text = Calendar1.SelectedDate.ToShortDateString() End Sub Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) If Page.IsValid Then Label1.Text = "You are set to arrive on: " & TextBox1.Text End If End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Date Validation Check</title>
</head> <body>
<form id="form1" runat="server"> Arrival Date: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="select a date within the next two weeks." ControlToValidate="TextBox1" Type="Date"/>
Select your arrival date:
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged"></asp:Calendar>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server"></asp:Label> </form>
</body> </html></source>