настраиваемый валидатор на стороне сервера в asp. net, если в качестве применимого скидки выбрано «да», тогда текстовое поле должно быть обязательным, иначе текстовое поле не обязательно - PullRequest
1 голос
/ 01 февраля 2020

пользовательский валидатор на стороне сервера в asp. net, если в качестве скидки применяется раскрывающееся "да", тогда текстовое поле должно быть обязательным, в противном случае текстовое поле не обязательно

HTML

<td>
     <asp:DropDownList ID="ddlDiscountApplicable" runat="server" CssClass="wd150">
         <asp:ListItem Text="--Select--" Value="0"></asp:ListItem>
      <asp:ListItem Text="Yes" Value="Yes"></asp:ListItem>
     <asp:ListItem Text="No" Value="No"></asp:ListItem>
       </asp:DropDownList>
      <asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ErrorMessage="Select Discount Applicable"
        ControlToValidate="ddlDiscountApplicable" InitialValue="0" Display="Dynamic" ValidationGroup="NameValidator"
       ForeColor="Red">*</asp:RequiredFieldValidator>
 </td>
    </tr>
      <tr id="DiscountRow" style="display:none">
   <td style="width:170px" runat="server" id="labelDiscount">
   Discount
    </td>
 <td runat="server" id="TextboxDiscount">
    <asp:TextBox ID="DiscountText" runat="server" CssClass="wt150"></asp:TextBox>
<asp:CustomValidator runat="server" id="cusCustom" controltovalidate="DiscountText" onservervalidate="checkDiscountApplicable" errormessage="Enter Discount" />                                                                                                       
  </td>

код позади

protected void checkDiscountApplicable(object sender, ServerValidateEventArgs e){
        var discount = ddlDiscountApplicable.SelectedValue;
        var validData = true;
        var val = e.Value;
        if (discount == "Yes")
        {
            if (val == null || val == "")
            {
                validData = false;
            }
        }
        else
        {
            e.IsValid = true;
        }
        if (validData)
            e.IsValid = true;
        else
            e.IsValid = false;
    } 
...