This AsyncValidator supports RegexOptions, such as IgnoreCase, Multiline, etc.
Test validation.
The AsyncValidator is a Async-Enhanced "one size fits all" validator server control. It has every type of validation currently available, built-in to this one control.
<%@ Register Assembly="AsyncControls" Namespace="DelvingWare.AsyncControls" TagPrefix="dw" %> <dw:AsyncPanel runat="server" ID="pnlOne" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">Multi-Validation (Date/Required Field)</div> <dw:AsyncTextBox ID='txtMain' runat="server" CssClass="forms" /> <dw:AsyncButton runat="server" ID="btOne" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <dw:AsyncValidator ID="txtV" runat="server" ControlToValidate="txtMain" ErrorMessage="Please enter a date. " ErrorMessageCssClass="errorMsg" /> <dw:AsyncValidator id="txtV2" runat="server" ControlToValidate="txtMain" ErrorMessage="Please enter a valid date." ErrorMessageCssClass="errorMsg" Operator="dataTypeCheck" Type=Date Validation="Compare" /> </dw:AsyncPanel> <dw:AsyncPanel runat="server" ID="pnlTwo" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">Compare Validator (w/ Internal Required Field)</div> <dw:AsyncTextBox runat="server" ID="txtCmp" ErrorMessageCssClass="errorMsg" ErrorMessage="Required Field" EnableValidation="Enabled" /> <dw:AsyncButton runat="server" ID="btTwo" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <dw:AsyncValidator runat="server" ID="cmpV" ControlToValidate="txtCmp" ErrorMessage="Numbers only." ErrorMessageCssClass="errorMsg" Operator="DataTypeCheck" Type="Integer" Validation="Compare" /> </dw:AsyncPanel> <dw:AsyncPanel runat="server" ID="pnlThree" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">Required Field Validator</div> <dw:AsyncTextBox runat="server" ID="txtReqField" /> <dw:AsyncButton runat="server" ID="btThree" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <!-- It performs Required Field validation by default --> <dw:AsyncValidator runat="server" ID="reqFieldV" ControlToValidate="txtReqField" ErrorMessageCssClass="errorMsg">Required field.</dw:AsyncValidator> </dw:AsyncPanel> <dw:AsyncPanel runat="server" ID="pnlFour" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">Range Validator</div> <dw:AsyncTextBox runat="server" ID="txtRange" /> <dw:AsyncButton runat="server" ID="btFour" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <dw:AsyncValidator runat="server" ID="rangeV" ControlToValidate="txtRange" ErrorMessageCssClass="errorMsg" MinimumValue="100" MaximumValue="150" Validation="Range">Value must be between <b>100</b> and <b>150.</b></dw:AsyncValidator> </dw:AsyncPanel> <dw:AsyncPanel runat="server" ID="pnlFive" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">Regular Expression Validator (w/Internal Required Field)</div> <p style="font-family: Trebuchet MS, Arial; font-size: 10pt;"> This AsyncValidator supports RegexOptions, such as IgnoreCase, Multiline, etc. </p> Type <b>AsyncControls</b> (case-insensitive): <br /> <dw:AsyncTextBox runat="server" ID="txtRegex" EnableValidation="Enabled" ErrorMessage="Required Field" ErrorMessageCssClass="errorMsg" /> <dw:AsyncButton runat="server" ID="btFive" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <dw:AsyncValidator runat="server" ID="regexV" ControlToValidate="txtRegex" ErrorMessageCssClass="errorMsg" ValidationExpression="asynccontrols" ValidationExpressionOptions="IgnoreCase" Validation="RegularExpression">Please type: AsyncControls.</dw:AsyncValidator> </dw:AsyncPanel> <dw:AsyncPanel runat="server" ID="pnlSix" CssClass="liveDemoSectionDiv"> <div class="liveDemoSectionTitle">AsyncListControl Validator</div> <dw:AsyncDropDownList runat="server" ID="drpList"> <dw:AsyncListItem Value="none" /> <dw:AsyncListItem Value="one">One</dw:AsyncListItem> <dw:AsyncListItem Value="two">Two</dw:AsyncListItem> </dw:AsyncDropDownList> <dw:AsyncButton runat="server" ID="btSix" CausesStrictValidation="true" CssClass="greyButton">Validate</dw:AsyncButton> <br /> <dw:AsyncValidator runat="server" ID="drpV" ControlToValidate="drpList" ErrorMessage="Please select a valid list item." ErrorMessageCssClass="errorMsg" InitialValue="none" /> </dw:AsyncPanel> <dw:AsyncLabel runat="server" ID="lblMain" RenderMode="paragraph">Test validation.</dw:AsyncLabel> <dw:AsyncButton runat="server" ID="btMain" CausesValidation="true" OnClick="btMain_Click" CssClass="greyButton">Validate All</dw:AsyncButton>
using System; using DelvingWare.AsyncControls; ... protected void btMain_Click( object sender, AsyncEventArgs ae ) { // ensure the page validation was successful if ( AsyncPage.IsValid ) { // update the AsyncLabel text lblMain.Text = "All fields are valid."; } else { // create working string instance to work with string lblString = "<u>Validation Summary</u><br />"; // append all the pages validation collection summaries for each failed validator foreach( AsyncValidatorItem vi in AsyncPage.ValidatorCollection ) { lblString += "<p class='errorSummary'>"+ vi.ErrorMessage +"</p>"; } // end FOREACH // append trailing suggestion lblString += "<br /><u>Please check fields.</u>"; // show the message box to the user for 4.2 seconds AsyncPage.MessageBox(lblString, 4200); // update the AsyncLabel text lblMain.Text = AsyncPage.ValidatorCollection.Count +" field(s) failed validation."; } }
Imports System Imports DelvingWare.AsyncControls ... Protected Sub btMain_Click(ByVal sender As Object, ByVal ae As AsyncEventArgs) ' ensure the page validation was successful If AsyncPage.IsValid Then ' update the AsyncLabel text lblMain.Text = "All fields are valid." Else ' create working string instance to work with Dim lblString As String = "<u>Validation Summary</u><br />" ' append all the pages validation collection summaries for each failed validator For Each vi As AsyncValidatorItem In AsyncPage.ValidatorCollection lblString = (lblString + ("<p class='errorSummary'>" _ + (vi.ErrorMessage + "</p>"))) Next ' end FOREACH ' append trailing suggestion lblString = (lblString + "<br /><u>Please check fields.</u>") ' show the message box to the user for 4.2 seconds AsyncPage.MessageBox(lblString, 4200) ' update the AsyncLabel text lblMain.Text = (AsyncPage.ValidatorCollection.Count + " field(s) failed validation.") End If End Sub
.asyncValidatorDemo { width: 518px; font-family: Verdana, Arial, Serif; }