RequiredValidation仅在另一个控件包含值时才处于活动状态

时间:2011-11-17 10:28:36

标签: asp.net validation

我有两个下拉列表,如果其中一个包含值(不是默认值,即空字符串),另一个也应该有一个值(如requredvalidator)。但如果没有人有价值,页面应该验证'真'。 我无法使用验证组来解决它,因为触发验证的按钮已经触发了其他验证。

2 个答案:

答案 0 :(得分:1)

您是否可以使用自定义验证器控件并将您的逻辑放在服务器端验证方法中。将其保存在同一个验证组中。

<asp:CustomValidator ID="valCust" runat="server" 
                ControlToValidate="ddlControl" ErrorMessage="error Message" 
                ValidationGroup="Group" 
                onservervalidate="valCust_ServerValidate" >*</asp:CustomValidator>

背后的代码

 protected void valCust_ServerValidate(object source, ServerValidateEventArgs args)
{
     args.IsValid = MethodToWorkOutValidation();

}

答案 1 :(得分:0)

请查看下面的代码段。

 function EnableDisableValidator() {
        var DropDownList1 = document.getElementById('DropDownList1');
        var DropDownList2 = document.getElementById('DropDownList2');
        var RequiredFieldValidator12 = document.getElementById('RequiredFieldValidator12');
        if (DropDownList1.selectedIndex > 0 && DropDownList2.selectedIndex > 0) {
            ValidatorEnable(document.getElementById('RequiredFieldValidator12'), true);

        }
        else {
            ValidatorEnable(document.getElementById('RequiredFieldValidator12'), false);
        }
    } 

..........

 <asp:DropDownList ID="DropDownList1" runat="server" onchange="EnableDisableValidator();">
    <asp:ListItem Text="" Value=""></asp:ListItem>
    <asp:ListItem Text="1" Value="1"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server" onchange="EnableDisableValidator();">
    <asp:ListItem Text="" Value=""></asp:ListItem>
    <asp:ListItem Text="1" Value="1"></asp:ListItem>
</asp:DropDownList>
<div style="display: none;">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="TextBox1"
    Enabled="false" ErrorMessage="*************" ></asp:RequiredFieldValidator>

如果有任何疑虑,请告诉我