2011-03-01 18 views
0

こんにちは 関連するautocompleteextenderコントロールの補完リストにある値だけを受け入れるには、テキストボックスの値を検証する必要があります。Validate AutoCompleteExtender

私はasp.net 2.0でajaxtoolkit(バージョン20229)を使用しています。

今のところ私は以下のコードを使用してテキストボックスを検証します。あなたが見ることができるように、私は選択されたキーを保持する隠しフィールドを持っていた。ユーザーがリストから値を選択せず​​に値を入力すると、hiddenfieldは0に設定されます。

ご存知ですか?自動補完リストに

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()] 
    public static string[] getStrada(string prefixText, int count, string contextKey) 
    { 
     System.Collections.Generic.List<string> items = new System.Collections.Generic.List<string>(); 
     DataSetIncidentiTableAdapters.StradarioTableAdapter adapter = new DataSetIncidentiTableAdapters.StradarioTableAdapter(); 
     DataSetIncidenti.StradarioDataTable dtStrade = adapter.GetStrade(contextKey, prefixText); 

      foreach (DataSetIncidenti.StradarioRow strada in dtStrade.Rows) 
      { 
       items.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(strada.DenominazioneCompletaVia, strada.IdStrada.ToString())); 
      } 

     return items.ToArray(); 
    } 

答えて

0
を移入するために使用さ おかげ

/* *** Javascriptコード

function AutoCompleteItemPopulated(source, eventArgs) 
     { 
      var assocHiddenField = document.getElementById(source.get_element().id+'_hidden'); 
      assocHiddenField.value=0; 
} 



function AutoCompleteItemSelected(source, eventArgs) 
     { 
      var assocHiddenField = document.getElementById(source.get_element().id+'_hidden'); 

      assocHiddenField.value = eventArgs.get_value(); 

      } 

/* ** * *分離コードコード

はい、これは検証できます。これを行うにはCustomValidatorを使用する必要があります。これは、クライアントとサーバーの両方の検証関数を設定し、隠しフィールドの値をチェックすることができます。

これは私たちにとって素晴らしい作品です。

HTH。

+0

これで確認が正しく行われましたが、検証エラーが表示された後、自動応答が機能しなくなりました。 – Liuc

+0

いくつかの再初期化が必要な場合があります。これはバグのように聞こえるもので、ACTフォーラム(forums.asp.net)にログオンしたいことがあります。その後、再び、それはあまりにも後のバージョンで修正されている可能性があります... –