从cs页面启用/禁用必填字段验证器?

Rah*_*ury 14 javascript c# asp.net validation

我的页面中有两个TextBox和两个Buttons.

一个是隐藏的,另一个是显示的.

当我点击Button1它时,它将保存两者的数据,TextBox并将通过它验证每个TextBox RequiredFieldValidator.

然后当我点击时Button2,它只会隐藏自己(Button2)并显示隐藏的内容TextBox.

两者TextBoxRequiredFieldValidator验证了Button1对话的事件点击.

现在我的问题是,当我只是在第一个TextBox中输入文本并单击"保存"时,单击按钮即可验证隐藏字段的必填字段.我只想在显示时验证2文本框.

我怎么能避免这个?

Pra*_*iar 29

那么你可以简单地使用Enabled="false"属性RequiredFieldValidator.

markup根据你的问题你会看起来像这样.

<asp:TextBox runat="server" ID="tb1"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv1" ControlToValidate="tb1" ErrorMessage="*" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:TextBox runat="server" ID="tb2" Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv2" ControlToValidate="tb2" ErrorMessage="*" Enabled="false" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:Button runat="server" ID="btn1" Text="Save" onclick="btn1_Click" ValidationGroup="gvSave"/>
<asp:Button runat="server" ID="btn2" Text="Show" onclick="btn2_Click" />
Run Code Online (Sandbox Code Playgroud)

codebehind喜欢这样:

protected void btn2_Click(object sender, EventArgs e)
{
    tb2.Visible = true;
    rfv2.Enabled = true; // Enables the second requiredfieldvalidator
}

protected void btn1_Click(object sender, EventArgs e)
{
  // your Saving code here
}
Run Code Online (Sandbox Code Playgroud)