asp.net中带有列表框的自动填充功能

asp.net中带有列表框的自动填充功能,asp.net,Asp.net,我有一个列表框,其中的项目是从数据库的表中加载的“名字” 现在,我想要一个自动填充功能,如果用户键入像“a”这样的名称,那么以“a”名字开头的所有名称都应该显示在列表框中 单击某个按钮后,原始数据应重新填充到列表框中 对于第二个,即重新填充,希望我可以使用以下代码 protected void btnRePopulate_Click(object sender, EventArgs e) { DataSet oDs = ReadDataSet(); Listbox1.DataTe

我有一个列表框,其中的项目是从数据库的表中加载的“名字”

现在,我想要一个自动填充功能,如果用户键入像“a”这样的名称,那么以“a”名字开头的所有名称都应该显示在列表框中 单击某个按钮后,原始数据应重新填充到列表框中 对于第二个,即重新填充,希望我可以使用以下代码

protected void btnRePopulate_Click(object sender, EventArgs e)
{
    DataSet oDs = ReadDataSet();
    Listbox1.DataTextField = "Name";
    Listbox1.DataValueField = "ID";
    Listbox1.DataSource = oDs;
    Listbox1.DataBind();
}
但是第一次,我有一些我正在处理的事情,当用户键入“a”或其他什么时,我使用textbox keyup事件触发

清除列表框并添加以“a”开头的名称,但不确定是否可以从客户端添加 或者将另一个列表框设置为可见,并使用从原始列表框中筛选的名称隐藏原始列表框,我无法从js或codebehind中为其设置可见属性 不,我不想使用ajax自动填充
除了上述两个选项之外,还有更好的选项吗?

此过滤和重置最好在客户端本身完成。这样您就不会进行不必要的服务器调用。下面是jQuery中的一个扩展方法

$(function() {
  $('#select').filterByText($('#textbox'), true);
}); 
扩展方法:

jQuery.fn.filterByText = function(textbox, selectSingleMatch) {
  return this.each(function() {
    var select = this;
    var options = [];
    $(select).find('option').each(function() {
      options.push({value: $(this).val(), text: $(this).text()});
    });
    $(select).data('options', options);
    $(textbox).bind('change keyup', function() {
      var options = $(select).empty().scrollTop(0).data('options');
      var search = $.trim($(this).val());
      var regex = new RegExp(search,'gi');

      $.each(options, function(i) {
        var option = options[i];
        if(option.text.match(regex) !== null) {
          $(select).append(
             $('<option>').text(option.text).val(option.value)
          );
        }
      });
      if (selectSingleMatch === true && 
          $(select).children().length === 1) {
        $(select).children().get(0).selected = true;
      }
    });
  });
};

我在Lessan Vaezi的博客上找到了这篇文章,其中有一篇关于如何做到这一点的文章。

您可能需要至少输入三个字符才能从数据库中获得与表达式开头匹配的项目列表。谢谢您的回复。。。是的,你是绝对正确的,即使我想到了,但由于我已经有了记录,即,在列表框中,我是否需要再次往返数据库以筛选我已经有的记录…或者是否有方法从java脚本访问数据集,该脚本完全获取,使用它我可以从java脚本中过滤数据。任何想法,伙计们……thanx dude,都会尝试一下;