18 个解决方案
#1
google -- autocomplete
#2
ajax Toolkit里面就有这么个东西。
#3
最近刚做。 不过不能像百度那么强大。
用WEB SERVICE +AJAX 实现。
#4
你可以就用一般的问本框,然后下面跟一个层,在keyup的时候ajax提交数据到后台,后台获取相关数据,通过json返回到前台,然后对json进行处理,div的html++就可以了。动动脑筋,动动手。
#5
有木有例子呢? AJAX都忘光了。一直在改BUG。
#6
这类例子我有,不过跟百度相比那我的就不是东西了!
#7
Web Service Code:
/// <summary>
/// UserWebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class UserWebService : System.Web.Services.WebService
{
[WebMethod]
public string[] GetHotSearchByKeyWordsUser(string prefixText, int count)
{
string connstr = @"Data Source=.;Initial Catalog=C:\HIGHNIGHT\WEB\APP_DATA\HIGHNIGHT.MDF;Integrated Security=True";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string sql = "select top " + count + " UserName from Users where UserName like '%" + prefixText + "%'";
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
List<string> list = new List<string>();
foreach (DataRow row in ds.Tables[0].Rows)
{
list.Add((string)row[0]);
}
return list.ToArray();
}
}
页面:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>输入用户名:
<asp:TextBox ID="txtUserName" runat="server" BorderColor="#C8ECFF"
BorderStyle="Solid" BorderWidth="2px" Width="157px"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/Image/seach (2).bmp" ImageAlign="Bottom"
onclick="ImageButton1_Click" />
</div>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtUserName"
MinimumPrefixLength="1"
ServiceMethod="GetHotSearchByKeyWordsUser"
ServicePath="UserWebService.asmx"
EnableCaching="true"
CompletionSetCount="6" >
</cc1:AutoCompleteExtender>
#8
Net+JQuery自动补全
http://hi.baidu.com/shenhui_1/blog/item/e78de51c2bd3c36edbb4bda6.html
http://hi.baidu.com/shenhui_1/blog/item/e78de51c2bd3c36edbb4bda6.html
#9
autocomplete
#10
#11
#12
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>AJAX控件之AutoComplete</title>
</head>
<body style="text-align: center">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="MyAuto" runat="server" Width="191px"></asp:TextBox><br />
<br />
<cc1:AutoCompleteExtender ID="ace" runat="server" CompletionInterval="100" MinimumPrefixLength="1"
ServiceMethod="GetCompletionList" ServicePath="WebService.asmx" TargetControlID="MyAuto">
</cc1:AutoCompleteExtender>
</div>
</form>
</body>
</html>
# using System;
using System.Web;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//用以调用Web Service方法签名
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {}
[WebMethod]
public string[] GetCompletionList(string prefixText, int count)
{
//if (count == 0)
//{
// count = 10;
//}
Random random = new Random();
List<string> items = new List<string>(count);
for (int i = 0; i < count; i++)
{
char c1 = (char)random.Next(65,90);
char c2 = (char)random.Next(97, 122);
char c3 = (char)random.Next(48, 57);
char c4 = (char)random.Next(33, 43);
items.Add(prefixText + c1 + c2 + c3 + c4);
}
return items.ToArray();
}
}
#13
如果我用了WEBSERVICE的话,是不是也要把WEBSERVICE发布的? WEBSERVICE发布是不是跟发布网站一样的?
#15
http://i.laoer.com/jquery-autocomplete-plugin.html
最简单下拉提示框,字符串可用过数据库读取。
我有DEMO,要的说
最简单下拉提示框,字符串可用过数据库读取。
我有DEMO,要的说
#16
要考虑数据量大的时候应该怎么处理。。听说缓存技术使用上了。
#17
最近也在研究这个
#18
对我有用,楼上的发个例子吧!
#1
google -- autocomplete
#2
ajax Toolkit里面就有这么个东西。
#3
最近刚做。 不过不能像百度那么强大。
用WEB SERVICE +AJAX 实现。
#4
你可以就用一般的问本框,然后下面跟一个层,在keyup的时候ajax提交数据到后台,后台获取相关数据,通过json返回到前台,然后对json进行处理,div的html++就可以了。动动脑筋,动动手。
#5
有木有例子呢? AJAX都忘光了。一直在改BUG。
#6
这类例子我有,不过跟百度相比那我的就不是东西了!
#7
Web Service Code:
/// <summary>
/// UserWebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class UserWebService : System.Web.Services.WebService
{
[WebMethod]
public string[] GetHotSearchByKeyWordsUser(string prefixText, int count)
{
string connstr = @"Data Source=.;Initial Catalog=C:\HIGHNIGHT\WEB\APP_DATA\HIGHNIGHT.MDF;Integrated Security=True";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
string sql = "select top " + count + " UserName from Users where UserName like '%" + prefixText + "%'";
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds);
conn.Close();
List<string> list = new List<string>();
foreach (DataRow row in ds.Tables[0].Rows)
{
list.Add((string)row[0]);
}
return list.ToArray();
}
}
页面:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>输入用户名:
<asp:TextBox ID="txtUserName" runat="server" BorderColor="#C8ECFF"
BorderStyle="Solid" BorderWidth="2px" Width="157px"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/Image/seach (2).bmp" ImageAlign="Bottom"
onclick="ImageButton1_Click" />
</div>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtUserName"
MinimumPrefixLength="1"
ServiceMethod="GetHotSearchByKeyWordsUser"
ServicePath="UserWebService.asmx"
EnableCaching="true"
CompletionSetCount="6" >
</cc1:AutoCompleteExtender>
#8
Net+JQuery自动补全
http://hi.baidu.com/shenhui_1/blog/item/e78de51c2bd3c36edbb4bda6.html
http://hi.baidu.com/shenhui_1/blog/item/e78de51c2bd3c36edbb4bda6.html
#9
autocomplete
#10
#11
#12
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>AJAX控件之AutoComplete</title>
</head>
<body style="text-align: center">
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:TextBox ID="MyAuto" runat="server" Width="191px"></asp:TextBox><br />
<br />
<cc1:AutoCompleteExtender ID="ace" runat="server" CompletionInterval="100" MinimumPrefixLength="1"
ServiceMethod="GetCompletionList" ServicePath="WebService.asmx" TargetControlID="MyAuto">
</cc1:AutoCompleteExtender>
</div>
</form>
</body>
</html>
# using System;
using System.Web;
using System.Collections.Generic;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//用以调用Web Service方法签名
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {}
[WebMethod]
public string[] GetCompletionList(string prefixText, int count)
{
//if (count == 0)
//{
// count = 10;
//}
Random random = new Random();
List<string> items = new List<string>(count);
for (int i = 0; i < count; i++)
{
char c1 = (char)random.Next(65,90);
char c2 = (char)random.Next(97, 122);
char c3 = (char)random.Next(48, 57);
char c4 = (char)random.Next(33, 43);
items.Add(prefixText + c1 + c2 + c3 + c4);
}
return items.ToArray();
}
}
#13
如果我用了WEBSERVICE的话,是不是也要把WEBSERVICE发布的? WEBSERVICE发布是不是跟发布网站一样的?
#14
#15
http://i.laoer.com/jquery-autocomplete-plugin.html
最简单下拉提示框,字符串可用过数据库读取。
我有DEMO,要的说
最简单下拉提示框,字符串可用过数据库读取。
我有DEMO,要的说
#16
要考虑数据量大的时候应该怎么处理。。听说缓存技术使用上了。
#17
最近也在研究这个
#18
对我有用,楼上的发个例子吧!