【问题标题】:Google like dropdown search populated from database in Asp.Net谷歌喜欢从 Asp.Net 中的数据库填充的下拉搜索
【发布时间】:2015-06-24 08:55:31
【问题描述】:

我正在寻找一种简单但有效的方法来创建一个下拉搜索框,它应该像谷歌搜索一样工作,并且由数据库中的值填充,当我在文本框中键入任何内容时,它就会起作用。我应该能够选择任何值。我正在寻找最简单的解决方案,并且不想像我看到的每个示例那样使用 Web 服务或 ajax 控制工具包。任何帮助将不胜感激..

【问题讨论】:

  • 如果您想从数据库中提取数据而没有完全回发并且不想使用 web 服务或 ajax,我不确定这是否可行。如果有人回答此问题,请密切关注您的问题
  • 如何在没有 ajax 异步请求的情况下从数据库中获取记录。您需要使用 ajax 或 jquery。
  • @SainPradeep 您知道任何使用 jquery 从数据库中搜索数据的简单示例可能会有所帮助吗?在一个短暂的时间线上,没有太多时间花在这项任务上。谢谢
  • @Frank 不花时间你想要代码??这是STACKOVERFLOW,不是现成的代码教程网站。

标签: c# asp.net search textbox dropdownbox


【解决方案1】:

您正在寻找类似 JQuery 的自动完成功能,可在此处找到: https://jqueryui.com/autocomplete/

如果您不想使用 AJAX 查询进行搜索,您可以根据需要在 HTML 中包含所有数据。不过我不建议这样做,因为如果您的访问者查看您的来源,这些信息也会对他们公开可见。如果这不是问题,那么无论如何,走这条路。

如果您确实想通过 AJAX 加载数据,我链接到的自动完成功能也可以针对远程数据源工作。文档在这里: https://jqueryui.com/autocomplete/#remote

不使用远程数据源的示例(无 ajax):

$(function() {
var availableTags = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
  "Groovy",
  "Haskell",
  "Java",
  "JavaScript",
  "Lisp",
  "Perl",
  "PHP",
  "Python",
  "Ruby",
  "Scala",
  "Scheme"
];
$( "#birds" ).autocomplete({
  source: availableTags
});

在这个例子中,你必须想办法把你所有的标签打印到上面的 HTML 中,因为你显然不能硬编码。如何做到这一点,取决于您正在运行的技术。 (MVC,WebForms,...)。但是您通常只会从数据库中获取所有标签,然后将它们打印到 javascript 中。如果您需要这方面的示例并告诉我您的技术,请回复,我会更新我的答案。

远程数据源示例(使用 ajax):

$( "#birds" ).autocomplete({
  source: "/api/GetValuesForAutocomplete", //the url to query 
  minLength: 2 //the amount of letters the user has to type before the search begins
});

 //in your HTML you would have: 
<input id="birds" />

您可以在他们的网站上找到更完整的示例。对于这样的 ajax 查询,您必须使用的 URL 取决于您的网站是用什么技术编写的。您可以访问 WEB API 项目吗?或者它是一个 MVC 网站?还是 Webforms 网站?

【讨论】:

  • SO 标记为 asp.net 而不是 php,也不想调用 webservice
  • 是的。我稍微更新了我的答案,并添加了一些关于 URL 可以是什么的额外解释。
  • @ImadoddinIbnAlauddin:你能解释一下如何在没有 webservice 或 ajax 的情况下,以及页面不被回发吗?
  • 您可以将它们打印在页面本身上。例如,如果它是一个 ASPX 页面,您可以在代码中获取标签并将它们打印出来。这是我查看是否可以使用 ajax 的唯一方法。这种方式也不需要回发。
  • @ImadoddinIbnAlauddin 看到了 OP 的问题并明白他不想花时间在这项任务上,他甚至没有发布任何他尝试过的代码?,他想直接在他的嘴
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 2011-03-14
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多