web应用程序c#的文本框自动完成

本文关键字:文本 应用程序 web | 更新日期: 2023-09-27 18:25:25

我有一个下拉列表/文本框组合,使用户可以过滤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 + "%' ";
    }
}

理想情况下,我会包括自动完成只有当"工作标题"被选中。关于如何实现这一目标,有什么建议吗?

web应用程序c#的文本框自动完成

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

众所周知,WebForms中的自动完成/组合效果很难实现,因为默认的<asp:TextBox />带有许多内置功能。

ASP.NET WebForms没有现成的此功能。类似的东西在现在已经弃用的ASP.NET AJAX控件和工具包中提供,但首选的方式是现在使用jQuery。

幸运的是,jQuery使添加AutoComplete变得简单明了,不过请注意,您需要提供一个单独的[WebMethod]来提供填充自动完成的数据。

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

请注意,如果这是一个新项目,请考虑使用ASP.NET MVC,它更干净,也更容易实现此场景。