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 + "%' ";
}
}
理想情况下,我会包括自动完成只有当"工作标题"被选中。关于如何实现这一目标,有什么建议吗?
AutocompleteMode
属性仅存在于WinForm的ComboBox
和TextBox
控件(及其等效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,它更干净,也更容易实现此场景。