【问题标题】:Google like dropdown box when user is searching用户搜索时谷歌喜欢下拉框
【发布时间】:2010-03-03 20:17:34
【问题描述】:

我正在使用 asp.net C# 2008,我需要创建一个搜索文本框来显示下拉值(类似于 google 搜索); 下拉列表中显示的值将是 SQL 2005 数据库中的值(例如,用户正在搜索 FirstName,下拉列表将显示所有名字,当用户输入更多字母时,这些名字会被过滤……如果用户正在搜索 LastName , 下拉列表显示数据库中的所有 LastName 值.. 等)

对如何完成这项任务有任何想法吗?

【问题讨论】:

    标签: c# search asp.net-3.5


    【解决方案1】:

    您正在为您的文本框寻找自动完成行为。我建议使用现成的 jQuery 插件解决方案。

    http://docs.jquery.com/Plugins/Autocomplete

    【讨论】:

    • 这是我用于此实例的解决方案 - 在客户端中使用 c# 后端返回 JSON 对象列表。 +1
    【解决方案2】:

    如果AutoComplete control,我建议检查 ASP.NET AJAX 控件工具包的实现。一旦安装了工具包,您就可以扩展标准的 ASP WebForm TextBox 控件来使用它。

    【讨论】:

      【解决方案3】:

      这是特定于 ASP.NET 的解决方案。 Microsoft 在 Ajax Control Toolkit(自动完成控件)中实现了这一点。这是工作示例:

      http://www.asp.net/AJAX/AjaxControlToolkit/Samples/AutoComplete/AutoComplete.aspx

      但请确保您了解它的内部工作原理(使用 Ajax 调用),不要盲目地使用控制。

      【讨论】:

      • 上面链接中的ajax控件比较慢(对比google网站);
      • 没有什么原因。 Ajax Control Toolkit 有一定的开销,因此您为使用简单性付出了代价,因为 MS 代码很慢。而且速度还取决于服务器设置、算法、缓存等。你不能只看一眼就比较。
      【解决方案4】:

      javascript 是您的答案。击键后约 150 毫秒,向您的网站发送请求以获取匹配值。如果用户键入另一个字母,请准备好丢弃它。在每次击键后尝试响应的价值很小。

      【讨论】:

        【解决方案5】:

        对此没有内置的服务器控制。你应该实现你自己的。

        看看JQuery AutoComplete插件并尝试用Ajax回调实现它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-22
          • 1970-01-01
          • 2011-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-31
          • 1970-01-01
          相关资源
          最近更新 更多