2015-12-28 3 views
0

Я хочу, чтобы проверка, как, если я выбираю Status as Reject, тогда должны быть некоторые комментарии (обязательные). и если состояние Accept то комментарии могут быть пустыми (не обязательно)Проверка ASP.net для RadioButton

enter image description here

Как я буду делать это в ASP.NET, пожалуйста, найти свой код

<tr> 
         <td width="30%"> 
          <b>Status:</b> 
         </td> 


         <td> 
          <asp:RadioButton ID="lAccept" runat="server" AutoPostBack="True" 
           CausesValidation="True" Text="Accept" /> 
          <asp:RadioButton ID="lReject" runat="server" AutoPostBack="True" 
           CausesValidation="True" Text="Reject " /> 
          <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" 
           ErrorMessage="Please Select it is Accepted or Rejected" ForeColor="Red"></asp:RequiredFieldValidator> 

         </tr> 
        <tr> 
         <td width="30%"> 
          <b>Qty Rejected:</b> 
         </td> 

         <td> 
          <asp:TextBox ID="lRejectedQty" runat="server" CausesValidation="True"></asp:TextBox> 
          <%-- <asp:CustomValidator ID="CustomValidator1" runat="server" 
           ErrorMessage="Only interger between 1 to 10000000 " ondisposed="Page_Load" 
           oninit="Page_Load" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>--%> 
          <asp:RangeValidator ID="RangeValidator3" runat="server" 
           ErrorMessage="Rejected Quantity must be in change of 1 to 10,000,000" 
           ControlToValidate="lRejectedQty" Display="Dynamic" ForeColor="Red" 
           MaximumValue="10000000" MinimumValue="1"></asp:RangeValidator> 

         </td> 

        </tr> 
        <tr> <td width="30%"> 
          <b>Comments:</b> 
         </td> 


         <td> 
          <TEXTAREA rows=5 cols=40 name="lComments" id="lComments"></TEXTAREA> 
         </td> 

ответ

1

Самый простой способ для этого является для использования CustomValidator.

MSDN: https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator(v=vs.110).aspx

<asp:CustomValidator ID="CustomValidator1" runat="server" 
    ErrorMessage="You must enter Comments if you choose to Reject." 
    OnServerValidate="CustomValidator1_ServerValidate"> 
</asp:CustomValidator> 

Затем в коде, за это можно сделать более детальные проверки за это время действует или не

protected void CustomValidator1_ServerValidate(object sender, ServerValidateEventArgs e) 
{ 
    e.IsValid = true; // set it to be valid by default 

    if (lReject.Checked == true && string.IsNullOrWhiteSpace(lComments.Text) == true) 
    { 
     // Reject was selected and no comments were entered 
     e.IsValid = false; 
    } 
} 

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

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