Проверка нескольких элементов управления Asp.Net - PullRequest
1 голос
/ 25 февраля 2012

Итак, у меня есть ящик для входа и ящик для регистрации на одной странице. Оба имеют валидатор RequiredField. Прямо сейчас, поля для регистрации и входа в систему проверяются, когда я нажимаю либо логин, либо регистрация.

Тем не менее, я хочу, чтобы при регистрации регистрировались только поля регистрации, и если при входе в систему нажимались поля регистрации, то проверялась.

Не могли бы вы помочь мне здесь?

Большое спасибо!

Ответы [ 2 ]

5 голосов
/ 25 февраля 2012

Как сказал Дуи, вы должны назначить группы VAlidation следующим образом

       <table width="100%"> 
       <tr> 
          <td> 
                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
                <asp:RequiredFieldValidator 
   ID="RequiredFieldValidator1" runat="server" 
   ErrorMessage="RequiredFieldValidator" 
   ValidationGroup="Group1" ControlToValidate="TextBox1"> 
    </asp:RequiredFieldValidator> 
           </td>            
           </tr> 
        <tr> 
            <td> 
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
                <asp:RequiredFieldValidator 
     ID="RequiredFieldValidator2" runat="server" 
      ErrorMessage="RequiredFieldValidator" 
      ValidationGroup="Group2" ControlToValidate="TextBox2"> 
      </asp:RequiredFieldValidator> 
            </td> 
         </tr> 
        <tr> 
            <td> 
                   <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>  
     <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"                                                
    ValidationGroup="Group3" ControlToValidate="TextBox3"> 
   </asp:RequiredFieldValidator> 
           </td> 
        </tr> 
        <tr> 
         <td> 
              <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 
               <asp:RequiredFieldValidator 
                ID="RequiredFieldValidator4" runat="server"       ErrorMessage="RequiredFieldValidator" ControlToValidate="TextBox4">  
                  </asp:RequiredFieldValidator>             
           </td> 
       </tr> 
      <tr> 
           <td> 
                <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClientClick="javascript:return   validatePage();" /> 
               <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> 
           </td> 
       </tr> 

за все ваши проверки, а затем .... Из приведенной выше разметки вы можете увидеть, что существует четыре обязательных валидатора поля, и из четырех валидаторов три имеют свойство группы валидации. В таком случае при нажатии кнопки отправки будет выполняться только тот валидатор, у которого нет группы валидации, т.е. будет выполняться только RequiredFiedlValidator4. Поскольку существует более одной кнопки назначения группы валидации, ValidationGroup не будет работать, поскольку она будет выполнять только те элементы управления валидатора, которые принадлежат назначенной группе валидации. Другие элементы управления валидатора, принадлежащие другой группе валидации, не будут выполняться. Также невозможно указать несколько групп validaiton, используя свойство ValidationGroup элемента управления кнопки.

Способ решения этой проблемы - вызвать функцию JavaScript Page_ClientValidate. Page_ClientValidate - это функция JavaScript, созданная ASP.NET. Функция принимает имя группы проверки в качестве аргумента. Функция javascript, которая вызывается при нажатии кнопки отправки, вставляется ниже.

         <script language="javascript" type="text/javascript"> 
      function validatePage() 
      { 
  //Executes all the validation controls associated with group1 validaiton Group1. 
    var flag = Page_ClientValidate('Group1'); 
   if (flag) 
   //Executes all the validation controls associated with group1 validaiton Group2. 
        flag = Page_ClientValidate('Group2'); 
    if (flag) 
   //Executes all the validation controls associated with group1 validaiton Group3. 
       flag = Page_ClientValidate('Group3'); 
  if (flag) 
   //Executes all the validation controls which are not associated with any validation group. 
      flag = Page_ClientValidate(); 
    return flag; 
     } 
 </script>

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

4 голосов
/ 25 февраля 2012

Назначьте ValidationGroup = "SignUp" для валидаторов и кнопки регистрации, а ValidationGroup = "Login" для валидаторов и кнопки входа

когда вы сделаете это, будет запущена только проверка в той же группе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...