2012-11-14 138 views
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值,驗證是沒有得到使用的。

我該如何解決這個問題?

回答

1

我假定用戶沒有輸入文本,並且數據庫不允許空值。

A RegularExpressionValidator將不驗證空控件。所以你需要提供一個RequiredFieldValidator

如果輸入控件爲空,驗證不會失敗。使用 RequiredFieldValidator控件來使該字段成爲必需。

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

0

沒有太多的信息在這裏,但我會大膽猜測:

檢查,以確保你沒有什麼發生的OnLoad多數民衆贊成消隱的事情了。如果你有一個OnLoad,確保它只在IsPostback爲false時觸發。