0

我正在尝试使用比较验证器验证 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在日历控件中单击日期的那一刻得到消息框,并且文本框必须清楚。请帮帮我。

4

2 回答 2

0

在验证器中添加 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>
于 2013-07-24T05:17:05.953 回答
0

您可以使用 javascript 的“Page_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_ClientValidate”方法作为

var validate = function () {
    var isValid = Page_ClientValidate("DateValidation"); //parameter is the validation group
    if (!isValid) {
        $("#<%= todatetxt.ClientID %>").val(''); //jquery to clear the textbox
    }
}

您可以根据自己的方便修改“验证”功能。

我希望这会有所帮助。

问候,

萨马尔

于 2013-07-24T08:47:10.180 回答