2011-07-13 2 views
0

フィールドの1つにテキストボックスを持つGridViewがあります。私は、ユーザーが唯一の「X」の文字入りを確認するために、範囲バリデータを使用します。Range Validatorの問題

<asp:TextBox ID="txtMP3Master" runat="server" Text='<%# Eval("MP3Master") %>' BorderStyle="None" Width="80%" MaxLength="1" onchange="JSSaveNTSChanges(this);"></asp:TextBox> 
<asp:RangeValidator ID="MP3MasterRangeValidator" runat="server" ControlToValidate="txtMP3Master" Display="Dynamic" ErrorMessage="MP3 Master can be nothing but 'x'" Text="*" MinimumValue="x" MaximumValue="x" ValidationGroup="InsertUpdateNewTitlesStatusValidation"> 
</asp:RangeValidator> 

バリデータを表示し、「*」無効な入力ではなく、JSSaveNTSChanges()が、まだ呼ばれています。私は無効な入力でこの関数呼び出しをブロックします。 BTW、CompareValidatorは他のフィールドでも正しく動作し、対応する関数が呼び出されるのをブロックします。 この問題を解決することは可能ですか?おかげさまで

答えて

0

とカスタムバリデータで

  • この関数を呼び出し。

    ここで私は私の最後にテストしたものです。試してみてください。

    <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="CompareValidator" 
         ValueToCompare="x" ControlToValidate="txtMP3Master"></asp:CompareValidator> 
    
  • +0

    ありがとうございます。理由は分かりませんが、これはうまくいきませんでした。 – dpreznik

    +0

    他のフィールドで動作するCompareValidatorsは、値ではなくデータ型をチェックしています。 – dpreznik

    +0

    まだ今でも働いていますが、私は厳しい運を責めます... – dpreznik

    0

    JSSaveNTSChanges関数がバリデータの検証の前後に呼び出されるかどうかはわかりません。しかし、以下の2つのオプションのいずれかをお勧めします。

    1. 送信ボタンのクリックでJSSaveNTSChangesを移動します。あなたがCompareValidator代わりのRangeValidatorを使用する必要がありますEnableClientValidation =真
    +0

    ありがとうございました。私は送信ボタンを使用することはできませんし、私も何も持っていません。 – dpreznik

    +0

    2番目のオプションがどのように機能するかわかりません。 – dpreznik