Web应用程序的文本框自动完成功能c#

时间:2015-12-03 10:28:04

标签: c# asp.net

我有一个下拉列表/文本框组合,可以让用户过滤GridView的数据。 因此,用户可以在下拉列表中选择“职务名称”选项,然后在textbox中输入他们要查找的职位名称。但是,我想向用户提供职位名称建议列表。我一直在尝试将AutoCompleteMode设置为SuggestAppend并将AutoCompleteSource设置为自定义,但这不起作用,我收到AutoCompleteMode等错误。在当前的背景下不存在。

这是我的TextBox1 Changed事件中的代码:

 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”时才会包含自动完成功能。有关如何实现这一目标的任何建议吗?

1 个答案:

答案 0 :(得分:2)

AutocompleteMode属性仅存在于WinForm的ComboBoxTextBox控件中(及其ToolStrip个等效项)。 它在ASP.NET WebForms中不存在

WebForms中的自动完成/组合框效果非常难以实现,因为默认的<asp:TextBox />会带来许多阻碍的内置功能。<​​/ p>

ASP.NET WebForms并不具备开箱即用的功能。在现已弃用的ASP.NET AJAX控件和工具包中提供了类似的东西,但首选方法是使用jQuery。

幸运的是,jQuery可以直接添加AutoComplete,但请注意,您需要提供单独的[WebMethod]来提供填充自动完成的数据。

此页面提供了完整的教程:http://dotnetmentors.com/aspnet/jquery-autocomplete-by-example.aspx

请注意,如果这是一个新项目,请考虑使用ASP.NET MVC,它更清晰,使这种情况更容易。