2015-12-03 58 views
1

我有一個下拉/文本框組合,以使用戶能夠過濾GridView的數據。 因此,用戶將在下拉列表中選擇「職位」選項,然後在textbox中輸入他們正在查找的職位名稱。但是,我想給用戶一個建議職位名單的列表。我一直試圖這樣做AutoCompleteMode設置爲SuggestAppendAutoCompleteSource設置爲自定義,但這一直沒有工作,我得到的錯誤,AutoCompleteMode等在當前的情況下不存在。Web應用程序的文本框自動完成c#

這是我TextBox1中更改事件的代碼:

TextBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
t=TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; 
AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection(); 
addItems(DataCollection); 
TextBox1.AutoCompleteCustomSource = DataCollection; 

而這個設置自動完成選項:

var source = new AutoCompleteStringCollection(); 
source.AddRange(new string[] 
        { 
        "Marketing", 
        "Engineer", 
        "Medical", 
        "Insurance",       
        }); 

我目前正在與dropdown列表這樣的過濾數據:

void ResultsFilter() 
{ 
    if (DropDownList1.SelectedValue.ToString() == "Name") 
    { 
     ObjectDataSource1.FilterExpression = "Name LIKE '%" + TextBox1.Text + "%' "; 
    } 
    else if (DropDownList1.SelectedValue.ToString() == "JobTitle") 
    {   
     ObjectDataSource1.FilterExpression = "JobTitle LIKE '%" + TextBox1.Text + "%' "; 
    } 
} 

理想情況下,我會包括自動完成如果選擇「JobTitle」。有關如何實現這一目標的任何建議?

回答

2

AutocompleteMode屬性只存在於WinForm的ComboBoxTextBox控件(和它們的ToolStrip等價物)中。 它不存在於ASP.NET WebForms中。

由於默認<asp:TextBox />附帶了許多內置功能,所以WebForms中的自動完成/組合框效果非常難以實現。

ASP.NET WebForms不具備開箱即用的功能。在現在不贊成的ASP.NET AJAX控件和工具包中提供了類似的東西,但現在首選的方式是使用jQuery。

幸運的是,jQuery可以直接添加自動完成功能,不過請注意,您需要提供一個單獨的[WebMethod]來提供填充自動完成功能的數據。

本頁面提供了一個全面的教程:http://dotnetmentors.com/aspnet/jquery-autocomplete-by-example.aspx

需要注意的是,如果這是一個新的項目,可以考慮使用ASP.NET MVC代替,這是更清潔,讓這種情況更容易。