2009-08-03 10 views
0

こんにちは私は入力を検証したいので、カウントの単語のための方法は以下の通りです:ので、私はこの方法を置く検証ASP上の最小値として、二つ以上の単語:テキストボックス

public static string validateisMoreThanOneWord(string input, int numberWords) 
     { 
      try 
      { 
       int words = numberWords; 
       for (int i = 0; i < input.Trim().Length; i++) 
       { 
        if (input[i] == ' ') 
        { 
         words--; 
        } 
        if (words == 0) 
        { 
         return input.Substring(0, i); 
        } 
       } 
      } 
      catch (Exception) { } 
      return string.Empty; 
     } 

ときにメソッドの戻り値検証後にページがポストバックされない(AjaxToolKitのRequireFieldValidatorのように)

ありがとう!

答えて

1

まず第一に、あなたは多くのことを簡素化することができます。

次のステップでは、サーバーサイドコードだけでページをポストバックすることを停止できないということです。代わりに、CustomValidatorを使用して、ClientValidationFunctionのためにいくつかのjavascriptを書く必要があります。これは次のようになります。

3

custom validatorとして実装します。例についてはhttp://aspnet.4guysfromrolla.com/articles/073102-1.aspxを参照

ポストバックなしで作業することができない場合は、Javascriptで検証のクライアント側バージョンも実装する必要があります。 は、クライアント側のバージョンでC#実装へのAJAX呼び出しを行うことができますが、それはかなり単純なロジックなので、Javascriptで実装し、AJAXリクエストを保存します。

public static bool validateIsMoreThanOneWord(string input, int numberWords) 
{ 
    if (string.IsNullOrEmpty(input)) return false; 

    return (input.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Length >= numberWords);  
} 

このバージョンはまた、タブや改行のような他の空白文字を含めるように拡張が容易であるという利点があります:

関連する問題