【问题标题】:How to use autocomplete extender multiple times in single textbox?如何在单个文本框中多次使用自动完成扩展器?
【发布时间】:2015-06-15 08:54:31
【问题描述】:

我正在 ASP.NET 中开发基于房地产的应用程序。在这里,我想 使用自动完成扩展器来获取城市。我已经尝试了以下

下面是设计部分,我使用了一个名为“txtCity”的TextBox 以及一个目标控件为“txtCity”的自动完成扩展程序,并且 网络服务方法是“GetCities”。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title>Ajax AutoCompleteExtender without Webservice</title>
  </head>
  <body>
    <form id="form1" runat="server">
      <ajax:ToolkitScriptManager ID="ScriptManager1" runat="server"/>
      <div>
        <asp:TextBox ID="txtCity" runat="server"></asp:TextBox>
        <ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" 
              TargetControlID="txtCity" MinimumPrefixLength="1" EnableCaching="true" 
              CompletionSetCount="1" CompletionInterval="1000" ServiceMethod="GetCities" >
        </ajax:AutoCompleteExtender>
      </div>
    </form>
  </body>
</html>

下面是 Webservice 方法,它将以列表的形式返回城市名称。

using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Configuration;


[System.Web.Services.WebMethod]
public static List<string> GetCities(string prefixText)
{
   SqlConnection con = new SqlConnection  
  (ConfigurationManager.ConnectionStrings["dbconnection"].ToString());
  con.Open();
  SqlCommand cmd = new SqlCommand("select * from City where CityName  
  like @Name+'%'", con);
  cmd.Parameters.AddWithValue("@Name", prefixText);
  SqlDataAdapter da = new SqlDataAdapter(cmd);
  DataTable dt = new DataTable();
  da.Fill(dt);
  List<string> CoityNames = new List<string>();
  for (int i = 0; i < dt.Rows.Count; i++)
  {
     CityNames.Add(dt.Rows[i][1].ToString());
  }
  return CityNames;

}

在这里,当我输入任何字符时,所有匹配该字符的城市都会以下拉方式显示,并且在选择任何城市后,所选城市会显示在文本框中。

当我搜索另一个城市时,新城市会出现在文本框中,而之前选择的城市会被删除。但我不希望之前选择的城市消失。

我想使用 99acres.com 等网站中使用的功能。

【问题讨论】:

  • 您可以使用 Jquery 插件来实现这一点。 jqueryscript.net/form/…
  • 我认为没有任何方法可以自定义这些服务器控件。只要您使用它们提供的功能,这些控件就很好。 Jquery 控件为您提供了根据您的需要进行定制的可能性。这样就有很多可用的 jquery 控件,如果不可用,您可以轻松构建自己的控件。
  • 我通过适当的缩进更好地格式化了代码(因为它提高了可读性),并且还从您的设计和 Web 服务代码之间的文本中删除了额外的缩进,否则它会隐藏在代码块中.我还改写了句子以更好地解释您的问题。
  • 请不要对普通文本使用代码块格式(缩进 4 个字符)。如果要突出显示某些文本,请使用粗体、斜体等文本格式选项。此外,标题中通常不需要语言名称,因为它们是标签的一部分。

标签: c# jquery asp.net autocomplete


【解决方案1】:

这里正在使用 RAD 控件演示确切的功能http://demos.telerik.com/aspnet-ajax/autocompletebox/examples/default/defaultcs.aspx

您只需要设置 SQL 数据源和 AJAX 包装位。

截图:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多