【问题标题】:Filter ListBox items based upon textbox from OnKeyUp?根据来自 OnKeyUp 的文本框过滤 ListBox 项目?
【发布时间】:2010-10-27 17:51:54
【问题描述】:

我有一个包含大量项目的列表框,这些项目都是帐号,很难搜索。

是否可以在用户输入文本框时对项目进行“过滤”,以便仅显示与迄今为止输入的内容匹配的项目?

例如

列表框
2342
3434
2332
第3224章

用户然后在 texbox 中输入 3 - onKeyUp 列表框被过滤为仅显示:

文本框
3

列表框
3434
第3224章

然后用户在框中输入 2:

文本框
32

列表框
第3224章

这在 ASP.Net(不是 MVC2)中可行吗? 如果是这样,最好是通过 UpdatePanel 中的回调还是某种 JavaScript?

【问题讨论】:

    标签: c# asp.net listbox


    【解决方案1】:

    这是一个示例解决方案

    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());
    

    【讨论】:

    • 需要添加为 ListItems,但除此之外是一个不错的解决方案 :)
    • 如果没有文本输入到文本框,列表框是空的,但应该用List lst中的所有现有条目来填充。
    【解决方案2】:

    Jquery Listbox / Textbox filter 中有一个 jQuery 实现,即使您不想使用 jQuery,它也应该可以帮助您入门。

    【讨论】:

      猜你喜欢
      • 2011-01-21
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多