RequiredFieldValidator IsValid在visible = false控件上返回false

时间:2013-05-07 06:06:33

标签: c# asp.net .net

我希望当文本框为visible = false时,不应运行RequiredFieldValidator。

这是我的aspx代码:

<asp:TextBox runat="server" ID="txtAmt" MaxLength="7" Style="width: 100px;"/>
                    <asp:RequiredFieldValidator ValidationGroup="ln" runat="server" ControlToValidate="txtAmt"
                        Display="Dynamic" ErrorMessage="Required" />

现在我的代码

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           txtAmt.Visible = false;
        }
    }

然后在我的按钮点击处理程序中,当我执行Page.IsValid时,如果文本框为空,则返回false。知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

只需为验证器分配ID并将其禁用即可。

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           txtAmt.Visible = false;

         if(!txtAmt.visible) { txtamtValidator.Enabled=false};

        }
    }

答案 1 :(得分:0)

使用javascript你可以实现这个

<script type="text/javascript">
        function txtAmtOff()
        {
            document.getElementById("txtAmt").style.display = 'none';
            ValidatorEnable(document.getElementById("txtAmtValidator"), false);
        }
        function txtAmtOn()
        {
            document.getElementById("txtAmt").style.display = 'inline';
            ValidatorEnable(document.getElementById("txtAmtValidator"), true);
        }
    </script>