我有一个下拉列表/文本框组合,可以让用户过滤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”时才会包含自动完成功能。有关如何实现这一目标的任何建议吗?
答案 0 :(得分:2)
AutocompleteMode
属性仅存在于WinForm的ComboBox
和TextBox
控件中(及其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,它更清晰,使这种情况更容易。