可以使用ajax.net组件,方法是可以使用它的AutoComplete 控件,原理:先在数据库新建一张表用于保存搜索的索引,再把内容获取出来,关于AutoComplete用法,可以参考http://blog.csdn.net/yjjm1990/article/details/8833645;希望可以帮到你~~
我用AutoComplete 貌似还是不行 报错了 不知道是不是我遗漏了什么地方 代码贴出来 让你看看 有没有错?
源代码:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajx" %> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <ajx:AutoCompleteExtender ID="auto1" runat="server" ServicePath="myservice.asmx" ServiceMethod="ss" Enabled="true" MinimumPrefixLength="2" CompletionSetCount="10" TargetControlID="TextBox1"> </ajx:AutoCompleteExtender> </div> </form> </body>
这是webservice 的代码如下:
namespace WebApplication5 { /// <summary> /// myservice 的摘要说明 /// </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 myservice : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string[] ss() { string[] s = { "a", "ab", "abc", "abcd", "cadf", }; return s; } } }
这是报的错误
@恒_心: 研究了下,记得上次我遇到这样的问题,出在web.config文件里面,看看里面有没有添加对该组价的声明;
建议:如果数据不多的话,也可以用全文索引,搜索起来的速度不会比这种方式慢,ajax.net这个只是用于在搜索的时候进行关键词提示,更加正式的方式就是用Lucene.net和盘古分词,学起来需要点点时间~~看看你的需求吧!
注:如果ajax.net这个组件还是不能正确使用,我看看找个时间给你发个实例,不过能够自己研究起来还是比较好的~~加油吧!
@恒_心: 解决了吗?
AutoComplate,你去看看这个jquery插件~很简单的实现~
你这个就是智能提示!是吧?
我想要搜索结果,,,,到目前还不知道怎么做? 唉》。。。。
@恒_心: 额...那就要全文检索了,这个当前比较成熟的就是Luence.Net(搭配盘古分词【博客园找找看就是用的这一套】)了,
Lucene.net + JQuery.AutoComplate
能给点 步骤吗?谢谢
我把搜索的关键词拆分了 ,把拆分的字符做为单个字符去搜索!