[英]Server side validation for required fields
我遇到了 requiredfieldvalidator 控件在 ASP.net 页面上不起作用的问题。 我已经正确完成了该字段的属性,但是当我对其进行测试时,即使相关字段为空白,也允许回发。
所以我想做服务器端验证。 最好的方法是什么? 如果导致回发? 此外,如果我发现该字段为空白,我如何让用户返回屏幕,而他们放置在其他字段上的所有其他值都完好无损,并显示“此字段不能为空白”的消息。
编辑:
这是代码:
<asp:TextBox ID="fName" TabIndex="1" runat="server" Width="221px" CausesValidation="True"></asp:TextBox>
<asp:RequiredFieldValidator ID="FNameRequiredFieldValidator" runat="server"
ControlToValidate="fName" InitialValue="" ErrorMessage="Filter Name cannot be blank."
ToolTip="Filter Name cannot be blank.">*</asp:RequiredFieldValidator>
尝试从TextBox
中删除CauseValidation
属性并从验证器默认值中删除InvalidValue
就可以了。
服务器端验证在Page_Load
之后运行并控制事件。 如果您使用所需的验证器,则无需编写任何额外代码。
在Button_Click
事件中只需检查this.Page.IsValid
标志。
您能否发布与验证器相关的代码的 html 部分和要验证的文本框。 蝙蝠听起来就像您缺少验证器的 ControlToValidate 属性。 您还可以使用页面 class 的 IsValid 属性来测试页面验证是否通过。
这功能齐全。
<asp:TextBox ID="TextBox1" runat="server" />;
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="*" />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
首先,发布您的 requiredfieldvalidator 的代码,因为您显然做错了什么。
但是,最好同时检查客户端和服务器端,所以我会回答你的另一个问题。
我通常在回发的事件处理程序中检查有效性。 您可以在此处设置 Label 的值以指示故障。 由于这是回发,所有字段中的值都应保持输入时的状态。
Remove InitialValue=""
在文本框上使用它的唯一原因是如果你有一些默认文本(如“输入值”或类似的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.