0

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

我怎样才能解决这个问题?

4

2 回答 2

1

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

ARegularExpressionValidator不会验证空控件。所以你还需要提供一个RequiredFieldValidator.

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

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

于 2012-11-14T21:09:06.057 回答
0

这里没有太多信息,但我会冒险猜测:

检查以确保在 OnLoad 上没有发生任何使事情消失的事情。如果您确实有 OnLoad,请确保它仅在 IsPostback 为 false 时触发。

于 2012-11-14T21:09:29.047 回答