0

我希望当文本框为 时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;
        }
    }

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

4

2 回答 2

3

只需为验证器分配一个 ID 并禁用它。

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

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

        }
    }
于 2013-05-07T06:11:00.930 回答
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>
于 2013-05-07T06:29:05.353 回答