【发布时间】:2011-04-13 01:33:19
【问题描述】:
我们如何根据谷歌搜索等文本框的输入来过滤结果。 即,如果我输入“阿拉斯加航空公司”,那么它会根据我们的输入进行过滤并显示结果。怎么可能。请帮我。提前感谢..
【问题讨论】:
我们如何根据谷歌搜索等文本框的输入来过滤结果。 即,如果我输入“阿拉斯加航空公司”,那么它会根据我们的输入进行过滤并显示结果。怎么可能。请帮我。提前感谢..
【问题讨论】:
在搜索单击事件时,通过将文本框值作为输入参数传递,使用 like 关键字通过数据库查询绑定网格或任何要填充结果的控件
【讨论】:
如果我理解正确,您需要某种形式的自动完成功能,因为用户在您的输入框中输入内容。
要实现这一点,您应该使用 ajax,而 ASP.Net Ajax Toolkit 可能正是您所寻找的。在http://www.asp.net/ajax/ajaxcontroltoolkit/samples/autocomplete/autocomplete.aspx查看示例和文档。
这是 VS2010 的示例并使用 ASP.Net Toolkit 4。
标记
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:TextBox runat="server" ID="myTextBox" autocomplete="off" />
<asp:autocompleteextender runat="server" behaviorid="AutoCompleteEx" id="autoComplete1"
targetcontrolid="myTextBox" servicepath="AutoComplete.asmx" servicemethod="GetCompletionList"
minimumprefixlength="2" completioninterval="1000" enablecaching="true" completionsetcount="20"></asp:autocompleteextender>
</div>
</form>
</body>
</html>
AutoComplete.asmx.cs
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class AutoComplete : WebService
{
public AutoComplete()
{
}
[WebMethod]
public string[] GetCompletionList(string prefixText, int count)
{
if (count == 0)
{
count = 10;
}
if (prefixText.Equals("xyz"))
{
return new string[0];
}
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(97, 122);
items.Add(prefixText + c1 + c2 + c3);
}
return items.ToArray();
}
}
【讨论】: