2013-07-24 2 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

Вы можете решить проблему с помощью функции "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" > 

«проверить» здесь является Java-функция. В этой функции вы должны использовать «Page_ClientValidate» метод JavaScript в

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

Вы можете изменить функцию «Validate» в соответствии с вашего удобства.

Надеюсь, это помогло.

С уважением,

Samar

+0

Смарт! Большое спасибо за его работу – Hearty

+0

Нет проблем. Рад, что смог помочь. :) – samar

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

Спасибо за ответ! но, пожалуйста, помогите мне, как очистить текстовое поле после всплывающего сообщения! – Hearty

Смежные вопросы