2013-07-24 36 views
0

我試圖驗證fromdate & todate文本框在asp.net中使用比較驗證 我的腳本是:asp.net 「比較驗證器」 驗證

<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的那一刻就收到消息框,並且文本框必須清除。請幫助我。

回答

0

可以使用Javascript的 「Page_ClientValidate」 功能,可以解決你的問題, 「OnClientDateSelectionChanged」 CalendarExtender的事件。

你不需要改變你的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 
    } 
} 

您可以修改「驗證」功能,按您的方便。

我希望這有助於。

問候,

薩馬

+0

聰明!非常感謝它的工作 – Hearty

+0

沒有問題。很高興我能幫上忙。 :) – samar

0

添加顯示= 「動態」在驗證

 <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> 
+0

感謝您的回答!但請幫助我如何清除彈出消息後的文本框! – Hearty