验证控件未在表单提交时触发

时间:2012-11-14 21:06:15

标签: c# asp.net validation formview

我使用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值时,验证器根本没有被使用。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我假设用户没有输入任何文本,数据库也不允许空值。

RegularExpressionValidator不会验证空控件。因此,您还需要提供RequiredFieldValidator

  

如果输入控件为空,则验证不会失败。使用   RequiredFieldValidator控件使字段成为必需字段。

http://www.w3schools.com/aspnet/control_regularexpvalidator.asp

答案 1 :(得分:0)

这里的信息不多,但我猜想:

检查以确保您没有发生任何正在发生的事情。如果你有一个OnLoad,请确保它只在IsPostback为假时触发。

相关问题