asp.net需要在每个按钮操作上调用字段验证

时间:2011-12-22 01:57:28

标签: asp.net

我用asp.net所需的验证器控件编写了一个简单的asp.net代码,问题是我只有一个名为GO的提交按钮,以及一个查找选择的下拉列表: 明确,提交,取消。

无论选择何种选项,都会触发所需的字段验证。

是否有办法对页面进行编码,以便只有当所选值为“提交”时才会对其进行验证?

<asp:TextBox runat="server" id="txtName" />
    <asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="txtName" errormessage="Please enter your name!" />
    <br /><br />


    <asp:DropDownList ID="dpAction" runat="server">
                 <asp:ListItem>Submit</asp:ListItem>
                 <asp:ListItem Value="Reset">Reset</asp:ListItem>
                 <asp:ListItem>Cancel</asp:ListItem>
             </asp:DropDownList>
    &nbsp;
             <asp:Button ID="btnAction" runat="server" onclick="btnAction_Click" Text="Go" 
                 Width="40px" />

3 个答案:

答案 0 :(得分:2)

您可能必须使用自定义验证程序,如果您想要客户端验证,还需要为其编写客户端代码。

我假设您有一个文本框或其他需要的东西,当&#34; dpAction&#34;设置为&#34;提交&#34;?

例如,您可以在标记中执行类似的操作

<asp:CustomValidator id="CustomValidator1" runat="server" 
   OnServerValidate="TextValidate" 
   ControlToValidate="TextBox1" 
   ErrorMessage="Text must be specified if Submit is selected">

并在您的代码隐藏

protected void TextValidate(object source, ServerValidateEventArgs args)
{
   args.IsValid = dpAction.SelectedValue == "Submit" && !String.IsNullOrEmpty(textbox1.Text);
}

答案 1 :(得分:0)

使用“required”属性。 它的新内容为html 5

答案 2 :(得分:0)

你应该为每个Validator设置ValidationGroup! 对于要验证的所有控件以及触发验证的按钮:

并且按钮必须与验证器具有相同的验证组!