【问题标题】:text Multisearch in ASP.NETASP.NET 中的文本多搜索
【发布时间】:2016-06-01 03:23:59
【问题描述】:

我需要做一个文本 ASP.NET (C#) 多搜索文本框(即允许选择和输入 3 个值,例如:“一、二、三”)自动完成,并在我的数据库中使用 Google 搜索等建议,同时是在文本中输入值,数据网格将显示我们数据库中存在的数据... 你有什么建议或想法让它变得正确吗?

非常感谢您的关注

干杯

已编辑:

我正在尝试使用 c# 而不是 jquery,而不是 jquery。

非常感谢。

【问题讨论】:

  • 对于客户端操作,您很可能需要 jQuery 或 Javascript。你当然不能用only C#来实现这个。
  • 你特别问的,需要太多的技巧,特殊的缓存,还有很多你不能拥有的速度,让它像谷歌一样。您可以简单地放置一个更新面板,每次按键都会重新显示并查看结果。
  • @aristos 是的,但我只是陷入了一个错误,所以我正在努力解决它。非常感谢
  • 对于自动完成,您可能会编写一个 WCF 服务,该服务返回一个带有自动完成值的 JSON 对象(或带有逗号分隔值的简单字符串),您可以通过 JavaScript/jQuery 在页面上填充这些值。此外,将您的表/GridView 添加到 UpdatePanel 并在将新的完整单词添加到搜索字段时更新数据。这对你有用吗?
  • 如果对您有帮助,请不要忘记接受答案,作为对他人的基本礼貌......

标签: c# asp.net .net


【解决方案1】:

您可以使用 Jquery UI 的自动完成功能:

http://jqueryui.com/demos/autocomplete/#multiple

【讨论】:

  • @Koerner 谢谢我想问你是否使用 AJAX 自动完成功能可以实现与你发送给我的链接相同的功能(C#)。
【解决方案2】:

您可以使用AjaxToolKit AutoComplete extender

您一定会得到问题的答案。

【讨论】:

    【解决方案3】:

    由于您不想使用 jQuery,我建议您使用 AJAX 自动完成扩展器。非常有用,您可以使用 Web 方法在 C# 中执行所有查询代码。在这里查看article

    【讨论】:

    • 是的,但问题是当我选择第一个值并添加逗号时,我想选择第二个值,但自动完成 Ajax 没有显示第二个选择...
    • 您很可能需要更改自动完成扩展程序以包含触发逗号的 onKeyDown 事件,以便重新启动自动完成过程。 AJAX 控件是开源的,因此您应该能够更改它。请在此处查看answer
    • 或者你可以简单地有 3 个文本框,每个单词一个
    【解决方案4】:

    对于自动完成部分,您需要 AJAX Control Toolkit AutoCompleteExtender: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

    对于搜索部分,您需要SQL Server Full Text Searchhttp://blog.sqlauthority.com/2008/09/05/sql-server-creating-full-text-catalog-and-index/

    【讨论】:

      【解决方案5】:

      您可以查看支持逗号分隔搜索的http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/autocomplete/autocomplete.aspx

      加载列表需要时间,但它确实加载了列表。

      您甚至可以尝试http://pholpar.wordpress.com/2010/02/25/multivalue-autocomplete-winforms-textbox-for-tagging/ 示例,因为 Winform 必须转换为 Webform。

      编码愉快!!!

      【讨论】:

      【解决方案6】:

      文本框、ajax 工具包 AutoComp xtender 将为您完成。这样做:

      1. 创建 WebMethod 或 Page 方法。
      2. 以该方法调用您的选择查询。
      3. 通过 ToolkitScriptmanager 在 Ajax 工具包 Autocomplete Extender 中调用它。

      以上只是给你一个出路,你可以通过谷歌搜索得到休息。 http://www.aspdotnet-suresh.com/2011/05/ajax-autocompleteextender-sample.html

      【讨论】:

        【解决方案7】:

        您可以使用 AjaxToolKit 自动完成扩展器。

        检查以下链接。以下链接中的所有资源。 http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

        这是代码项目示例链接

        http://www.codeproject.com/Articles/201099/AutoComplete-With-DataBase-and-AjaxControlToolkit

        【讨论】:

          【解决方案8】:

          非常快 - 您的键/值对之间需要“&”,因此更改为:

          Response.Redirect("~SearchResults.aspx?Weight=" + txtWeight.Text + "&Height=" + txtHeight.Text + "&Age=" + txtAge1.Text + txtAge2.Text + "&Country=" + ddlCountry.SelectedValue);
          

          对于您的 SearchResult.aspx,您需要使用 QueryString 检索值,例如:

          string Weight = Request.QueryString["Weight"];
          string Height = Request.QueryString["Height"];
          
          ...and so on. You use the key from the redirect and the value is returned (setting your string variables).
          

          至于您的查询,您的表格是什么,您究竟在寻找什么结果?我知道您有这些标准,但您是否正在寻找与这些标准完全相同的东西?还是接近?我希望这会有所帮助!

          【讨论】:

            【解决方案9】:

            听起来像是 JQuery 自动完成和 JqGrid 显示匹配数据的工作。

            您永远无法进行重定向,因为您希望停留在同一页面上,并且只想动态更新页面的某些部分。

            如果您有机会使用 MVC 4,尤其是 WEB API,那将是非常棒的,如果不是接受并返回 json 数据的 web 方法,那就太好了。

            http://www.asp.net/web-api

            我个人不会为此使用 ajaxtoolkit,你的代码越接近 HTML,你就越好。

            【讨论】:

              【解决方案10】:

              使用带有数据库搜索结果的 web 方法实现的自动完成文本框搜索。

                   $(document).ready(function() {
                      SearchText();
                  });
                  function SearchText() {
                      $(".autosuggest").autocomplete({
                          source: function(request, response) {
                              $.ajax({
                                  type: "POST",
                                  contentType: "application/json; charset=utf-8",
                                  url: "Default.aspx/GetAutoCompleteData",
                                  data: "{'username':'" + document.getElementById('txtSearch').value + "'}",
                                  dataType: "json",
                                  success: function(data) {
                                      response(data.d);
                                  },
                                  error: function(result) {
                                      alert("Error");
                                  }
                              });
                          }
                      });
                  }
              
              [WebMethod]
              public static List<string> GetAutoCompleteData(string username)
              {
                  List<string> result = new List<string>();
              
                  using (SqlConnection con = new SqlConnection("Data Source=yourserver;Integrated Security=true;Initial Catalog=yourdatabase;User Id=youruserid;Password=yourpassword"))
                  {
                      using (SqlCommand cmd = new SqlCommand("select DISTINCT Name from Company where Name LIKE '%'+@SearchText+'%'", con))
                      {
                          con.Open();
                          cmd.Parameters.AddWithValue("@SearchText", username);
                          SqlDataReader dr = cmd.ExecuteReader();
                          while (dr.Read())
                          {
                              result.Add(dr["Name"].ToString());
                          }
                          return result;
                      }
                  }
              }
              

              更多详情http://www.infinetsoft.com/Post/How-to-create-autocomplete-textbox-with-database-in-asp-net-c/1254

              【讨论】:

                猜你喜欢
                • 2013-05-07
                • 2018-05-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-04-03
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多