2011-03-01 92 views
0

嗨 我需要驗證一個文本框的值,以便只接受相關autocompleteextender控件的完成列表中的值。Validate AutoCompleteExtender

我在asp.net 2.0上使用ajaxtoolkit(版本20229)。

現在我使用下面的代碼來驗證文本框;正如你所看到的,我有一個隱藏的字段來保存選定的密鑰。如果用戶沒有從列表中選擇它,則將hiddenfield設置爲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(); 

      } 

/* ** * *使用代碼隱藏代碼填充自動完成列表

[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

是的,這可以驗證;您需要使用CustomValidator來完成此操作,您可以設置客戶端和服務器驗證功能,然後檢查隱藏字段的值。

這對我們很好。

HTH。

+0

好的,謝謝,現在驗證工作正常,但顯示驗證錯誤後,autocompelte不再工作。 – Liuc

+0

可能需要進行一些重新初始化,這聽起來像一個錯誤,並且您可能想要登錄ACT論壇(forums.asp.net)。然後再次,它可能已被修復在更高版本中... –