2016-04-14 2 views
0

私はGridViewフッタテンプレートにテキストボックスを持っています。要件は、テキストボックスが0より大きく、小数点以下2桁までの数値でなければなりません。私はこのテキストボックスに次の3つのバリデータを持っています。私は12,3を置けばgridviewフッターのテキストボックスに対する複数のバリデーター

<asp:TemplateField HeaderText="Amount"> 
    <ItemTemplate> 
     <asp:Label ID="Label_Amount" runat="server" Text='<%# Bind("Amount") %>'></asp:Label> 
    </ItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtAmount" runat="server"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="rfvAmount" runat="server" ErrorMessage="Amount is a required field" 
      ControlToValidate="txtAmount" Text="*" ForeColor="Red" ValidationGroup="Insert"> 
     </asp:RequiredFieldValidator> 
     <asp:CompareValidator ID="cvAmount" runat="server" ErrorMessage="Amount must be &gt; 0" 
      ControlToValidate="txtAmount" ValueToCompare="0" ValidationGroup="Insert" Text="*" 
      Type="Double" Operator="GreaterThan"> 
     </asp:CompareValidator> 
     <asp:RegularExpressionValidator ID="revAmount" ControlToValidate="txtAmount" ValidationGroup="Insert" Text="*" 
      runat="server" ErrorMessage="Amount limits to two decimal places" ValidationExpression="^\d+(\.\d{1,2})?$"> 
     </asp:RegularExpressionValidator> 
    </FooterTemplate> 
</asp:TemplateField> 

問題は、私は唯一の「> 0でなければならない金額」のエラーメッセージを表示したいです。しかし、代わりに2つのエラーメッセージが表示されます。第3正規エクスプレスバリデーターも発砲されます。なぜわからないのですか?私はこれをどのように解決するのだろうか? 3つの要件を組み合わせて正規表現を書くことはできますか?私はまた、CustomeValidatorを使用しようとしましたが、何とかJavaScript関数が呼び出されることはありません。助言がありますか?

+0

html5(.Net 4.5+)用にプログラミングしていますか? – fnostro

+0

私は上記のように尋ねました。もしあなたがそうなら、 '' – fnostro

答えて

0

ページのどこかにValidationSummaryコントロールを追加するだけです。

Please see an example here

+0

私のポストではあまり明確ではありませんが、私はGridViewの直後にValidationSummaryを持っていました。 – GLP

1

revAmount検証が12,3のために失敗するかabcのためにこれらの文字列は、正規表現に一致しないため。数値に1桁または2桁の小数点以下の桁数がない場合にのみバリデータを起動させるには、数字以外の文字列が「有効」であることを考慮する必要があります(そのケースの検出はcvAmountのままです) 。

revAmountには、次の正規表現を使用できます。

ValidationExpression="^(((?!^\d+\.?\d*$).)*|\d+(\.\d{1,2})?)$" 

N.B.には、数値以外の文字列と一致します。私は123.(小数点で終わる)のような数字では失敗するあなたの元の検証を続けました。その状況を説明するためにエラーメッセージを修正することを検討することがあります。

関連する問題