我有一个包含大量项目的ListBox,这些项目都是帐号,很难搜索。
当用户键入文本框时,是否可以将项目“过滤”,以便只显示与目前为止输入的内容相匹配的项目?
e.g。
列表框
2342
3434
2332
3224
用户然后在texbox中输入3 - onKeyUp将列表框过滤为仅显示:
文本框
3列表框
3434
3224
用户然后在框中输入2:
文本框
32列表框
3224
这可能在ASP.Net(而不是MVC2)中吗? 如果是这样,最好通过UpdatePanel中的回调或somekind的javascript进行回调吗?
答案 0 :(得分:3)
以下是一个示例解决方案
private void textBox1_TextChanged(object sender, EventArgs e)
{
listBox1.Items.Clear();
List<String> lst = new List<string> {"2342","3434","2332","3224"};
listBox1.Items.AddRange(lst.Where(X => X.StartsWith(textBox1.Text)).ToArray());
}
还有一个
listBox1.Items.AddRange(listBox1.Items.Cast<String>().Where(X=>X.StartsWith(textBox1.Text)).ToArray());
答案 1 :(得分:1)
在Jquery Listbox / Textbox filter中有一个jQuery实现,它可以帮助你入门,即使你不想使用jQuery。