2015-01-22 11 views
1

Привета Я проверка текстового поля с галочкой состояния с помощью пользовательского валидатора ..customevalidator не работает, как ожидается, в ходе проверки

если галочка лжи и текстового поля пусто он должен бросить ошибку, как требуется CertID подобных .. . Я поставил точку останова в этом методе «cvCertId_OnServerValidate» не попав на всех, когда я нажимаю на кнопку отправки ...

Но я не в состоянии получить ошибку, когда я нажимаю на кнопку отправки ..

это мой код для осина

<div class="SearchLine"> 
      <div class="Firstlbl"> 
       <asp:Label ID="Lbl1" runat="server" Text=" CertificateID *" Font-Bold="True"></asp:Label> 
      </div> 
      <div class="firstTxtBox"> 
       <asp:TextBox ID="txtCertificateID" runat="server" Width="300px"></asp:TextBox> 
       </div> 
      <div class="rfvValidation"> 
      <asp:CustomValidator ID="cvCertId" runat="Server" OnServerValidate="cvCertId_OnServerValidate" Display="Dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator> 
      </div> 
     </div> 
     <div class="SearchLine"> 
      <div class="chkboxLine"> 
       <asp:CheckBox ID="chkSerialNumber" runat="server" AutoPostBack="True" OnCheckedChanged="chkSerialNumber_CheckedChanged" /> 
      </div> 
      <div class="Firstlbl"> 
       <asp:Label ID="Lbl2" runat="server" Text="Serial Number *" Font-Bold="True"></asp:Label> 
      </div> 
      <div class="firstTxtBox"> 
       <asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox> 
      </div> 
      <div class="rfvValidation"> 
       <asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator> 
      </div> 
     </div> 

    <div class="SearchResetControls"> 
      <asp:Button ID="btnSubmit" runat="server" Text="Re-Assign" 
       onclick="btnSubmit_Click" ValidationGroup="Validate"/> 
     </div> 
     <div runat="server" id="divMessage"> 
     <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label> 
    </div> 

и это мой aspx.cs код

protected void cvCertId_OnServerValidate(object sender, ServerValidateEventArgs args) 
    { 
     if (chkSerialNumber.Checked == false) 
     { 
      string certID = txtCertificateID.Text; 
      if (certID == string.Empty) 
      { 
       ((CustomValidator)sender).ErrorMessage = "Required Certificate Id"; 
       args.IsValid = false; 
      } 
     } 
    } 

    protected void cvSerialNumber_OnServerValidate(object sender, ServerValidateEventArgs args) 
    { 
     if (chkSerialNumber.Checked == true && string.IsNullOrEmpty(txtCertificateSerialNumber.Text)) 
     { 
      ((CustomValidator)sender).ErrorMessage = "Required Certificate Serial Number"; 
      args.IsValid = false; 

     } 
    } 

ли какой-либо один, пожалуйста, помогите на этом

большое спасибо заранее ....

ответ

0

Вы должны удалить ControlToValidate недвижимость в ваши пользовательские проверки. и Add Text и ErrorMessage. Например,

<div class="firstTxtBox"> 
    <asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox> 
</div> 
<div class="rfvValidation"> 
    <asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror" Text="Error" ErrorMessage="This is error message"></asp:CustomValidator> 
</div> 
+0

его не работает, если я упоминаю управление для проверки свойства также .. –

+0

Я изменил свой ответ. Я лично протестировал это решение на своем компьютере, и он работает. Текстовый атрибут не является обязательным. Но ErrorMessage требуется для отображения сообщения, особенно если вы используете элемент ValidationSummary. –