我使用FormView
控件允许用户向数据库插入行。我想验证这些输入字段,因此添加了一个正则表达式验证帮助器。这是标记:
<InsertItemTemplate>
<p>
Name:
<asp:TextBox ID="NameTextBox" runat="server" Text='<%# Bind("Name") %>' />
<asp:RegularExpressionValidator ValidationExpression="^[a-zA-Z0-9 ]*$" ControlToValidate="NameTextBox" ID="NameTextBoxValidator" runat="server" ErrorMessage="Must be alphanumeric characters and spaces"></asp:RegularExpressionValidator>
</p>
<p>
Location:
<asp:TextBox ID="LocationTextBox" runat="server"
Text='<%# Bind("Location") %>' />
</p>
<p>
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
</p>
</InsertItemTemplate>
但是,当我单击InsertButton
页面刷新并且我从SQL Server收到一条错误,说它无法插入NULL值时,验证器根本没有被使用。
我该如何解决这个问题?
答案 0 :(得分:1)
我假设用户没有输入任何文本,数据库也不允许空值。
RegularExpressionValidator
不会验证空控件。因此,您还需要提供RequiredFieldValidator
。
如果输入控件为空,则验证不会失败。使用 RequiredFieldValidator控件使字段成为必需字段。
http://www.w3schools.com/aspnet/control_regularexpvalidator.asp
答案 1 :(得分:0)
这里的信息不多,但我猜想:
检查以确保您没有发生任何正在发生的事情。如果你有一个OnLoad,请确保它只在IsPostback为假时触发。