“asp.net”;比较验证器“;验证

“asp.net”;比较验证器“;验证,asp.net,textbox,comparevalidator,Asp.net,Textbox,Comparevalidator,我正在尝试使用比较验证器验证asp.net中的fromdate&todate文本框 我的剧本是: <table><tr><td> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:Label ID="Label1" runat="server" Text="Fromdate:"> <

我正在尝试使用比较验证器验证asp.net中的
fromdate
&
todate
文本框 我的剧本是:

<table><tr><td>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>    

        <asp:Label ID="Label1" runat="server" Text="Fromdate:"> </asp:Label>
    <asp:TextBox ID="fromdatetxt" runat="server" Height="21px" Width="103px" ></asp:TextBox>
    <ajaxToolkit:CalendarExtender ID="fromdatetxt_CalendarExtender" runat="server" 
        Enabled="True" TargetControlID="fromdatetxt">
    </ajaxToolkit:CalendarExtender>

    </td>
           <td>
               <asp:Label ID="Label2" runat="server" Text="Todate:"></asp:Label>
               <asp:TextBox ID="todatetxt" runat="server" Height="21px" Width="105px" ></asp:TextBox>
               <ajaxToolkit:CalendarExtender ID="todatetxt_CalendarExtender" runat="server" 
                   Enabled="True" TargetControlID="todatetxt">
               </ajaxToolkit:CalendarExtender>

    </td>
    <asp:CompareValidator ID="CompareValidatorDate" runat="server" ControlToCompare="todatetxt"
    ControlToValidate="fromdatetxt" Display="None" ErrorMessage="From date cannot be greaterthan To date"
    operator = "LessThanEqual" Type="Date" ValidationGroup="DateValidation"></asp:CompareValidator>


               <td>
                   <asp:Button ID="Button1" runat="server" Text="Submit" onclick="Button1_Click" ValidationGroup="DateValidation" />

                  <asp:ValidationSummary ID="ValidationSummaryDate" ShowMessageBox="true" ShowSummary="False"
                  ValidationGroup="DateValidation" runat="server" /></td></tr></table>


   </asp:Panel>


这很好用!但我只有在单击按钮时才会收到消息框。但我想在我单击日历控件中的
Todate
中的日期时获得消息框,并且文本框必须清除。请帮助我。

在验证器中添加Display=“Dynamic”

        <asp:CompareValidator ID="CompareValidatorDate" runat="server" ControlToCompare="todatetxt"
            ControlToValidate="fromdatetxt" Display="Dynamic"  ErrorMessage="From date cannot be greaterthan To date"
            Operator="LessThanEqual" Type="Date" ValidationGroup="DateValidation"></asp:CompareValidator>

您可以使用javascript的“Page\u ClientValidate”功能和CalendarExtender的“OnClientDateSelectionChanged”事件解决问题

您不需要更改您的CompareValidator,即

<asp:CompareValidator ID="CompareValidatorDate" runat="server" ControlToCompare="todatetxt"
            ControlToValidate="fromdatetxt" Display="None" ErrorMessage="From date cannot be greater than To date"
            Operator="LessThanEqual" Type="Date" ValidationGroup="DateValidation"></asp:CompareValidator>

您需要将OnClientDateSelectionChanged事件添加到您的CalendarExtender中

<ajaxtoolkit:CalendarExtender id="todatetxt_CalendarExtender" runat="server" enabled="True"
                targetcontrolid="todatetxt" OnClientDateSelectionChanged="validate" >

“验证”这里是一个javascript函数。在该函数中,您需要使用javascript的“Page\u ClientValidate”方法作为

var validate = function () {
    var isValid = Page_ClientValidate("DateValidation"); //parameter is the validation group
    if (!isValid) {
        $("#<%= todatetxt.ClientID %>").val(''); //jquery to clear the textbox
    }
}
var validate=函数(){
var isValid=Page_ClientValidate(“DateValidation”);//参数是验证组
如果(!isValid){
$(“#”).val(“”)//jquery清除文本框
}
}
您可以根据自己的方便修改“验证”功能

我希望这有帮助

问候,


萨马尔

谢谢你的回答!但请帮助我如何清除弹出消息后的文本框!没问题。很高兴我能帮忙。:)