asp.netmaskededitextendercomparevalidator

Why is my MaskedEditValidator is not working?


I have following controls in my page, my CompareValidator works, but not the MaskedEditValidator. Am I missing anything?

<form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <div>
        Date: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:CalendarExtender ID="TextBox1_CalendarExtender" runat="server" 
            Enabled="True" TargetControlID="TextBox1">
        </asp:CalendarExtender>
        <asp:MaskedEditExtender ID="TextBox1_MaskedEditExtender" runat="server" 
            CultureAMPMPlaceholder="" CultureCurrencySymbolPlaceholder="" 
            CultureDateFormat="" CultureDatePlaceholder="" CultureDecimalPlaceholder="" 
            CultureThousandsPlaceholder="" CultureTimePlaceholder="" Enabled="True" 
            TargetControlID="TextBox1" Mask="99/99/9999" MaskType="Date">
        </asp:MaskedEditExtender>
        <%--<asp:MaskedEditValidator ID="MaskedEditValidator1" runat="server" 
            ControlExtender="TextBox1_MaskedEditExtender" ControlToValidate="TextBox1" 
            ErrorMessage="The Date is not valid!" IsValidEmpty="False">
        </asp:MaskedEditValidator>--%>        
        <asp:CompareValidator ID="CompareValidator1" runat="server" 
            ErrorMessage="Invalid Date!" ControlToValidate="TextBox1" 
            Operator="DataTypeCheck" Type="Date">
        </asp:CompareValidator>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="PostBack" 
            onclick="Button1_Click" style="height: 26px; width: 85px" />
        <br /><br />
        Selected Date:<asp:Label ID="Label1" runat="server"></asp:Label>
        </div>
    </form>

Solution

  • Replace your MaskedEditValidator with the following:

    <asp:MaskedEditValidator ID="MaskedEditValidator1"  runat="server"
    ControlExtender="TextBox1_MaskedEditExtender" ControlToValidate="TextBox1"
    IsValidEmpty="False" EmptyValueMessage="Invalid Date" 
    InvalidValueMessage="The Date is not valid!"> 
    </asp:MaskedEditValidator> 
    

    The key thing is that you needed InvalidValueMessage and/or EmptyValueMessage instead of ErrorText.