ControlToValidate会触发所有点击:我只想在点击“提交”按钮时触发它

时间:2011-01-18 19:08:22

标签: asp.net requiredfieldvalidator

我有一个文本框,经过验证可确保文件上传页面有文本内容。

我的问题是,当页面首次加载并且您仍然单击页面上的位置时,ControlToValidate会立即触发,这是一个问题,因为我只希望页面在您单击上载按钮时验证文本框。

您最终被困在“上传文件”页面上,直到您在文本框中键入一些随机文本,即使您单击链接以获取站点中的其他位置(即徽标以返回主页)。

以下是我的相关代码段:

 <asp:Label runat="server">Name</asp:Label>:
<br />
<asp:TextBox runat="server" ID="txtName"></asp:TextBox><asp:RequiredFieldValidator
    runat="server" ID="txtNameRequired" Display="Dynamic" ControlToValidate="txtName"
    Text="Name is required." CssClass="errorText" /><br />

<asp:Button runat="server" ID="btnUpload" Text="Upload" OnClick="btnUpload_Click" />
</asp:Panel> 

所以我有几个想法但不确定如何实现它们:

1)找到一些属性,将ControlToValidate仅链接到点击上传按钮。

2)设置ControlToValidate,使其仅在PostBacks上调用

我只是不确定从哪里开始,并且找不到任何专门做这个的属性!

非常感谢你的时间!

2 个答案:

答案 0 :(得分:1)

将其他发布控件的CausesValidation设置为false。

<asp:Button CausesValidation="false" Text="Cancel" Name="CancelButton" />

答案 1 :(得分:1)

设置按钮的ValidationGroup属性和控件以验证相同的值。